假设redux中的state是这样的:
state = {
value:'aaa',
list:['123','321','12231']
}
A组件是一个input,input的值对应state中的value。
B组件是一个list,list内容需要根据value值请求接口获取,比如http://api.com?query=aaa
如图:
当A的值更新,重新获取list并渲染B组件,正常逻辑是这样:
change事件发异步action请求新的list ==> 更新redux state中的list ==> B组件渲染
现在的问题是,因为一些特殊的原因,无法在A组件change事件中增加代码。是否可以在B组件中,监听value值变化,来自行更新list?
如果在componentWillMount
中获取并更新list,只会在B组件初始化时执行一次,当value变化时,不会再次执行。
如果在componentWillReceiveProps
也加入获取并更新list的方法,因为是异步的,会导致循环请求和渲染。
求助!
似乎找到解决方法了,如果有更好的办法,请指正!