之前使用vue,现在采用react,这种情况怎么使用啊
我在componentDidMount里面获取了数据,想存入redux,然而一直执行
lizijiee
#3
往redux里面存放数据有两种方法,一种是通过dispath调用时候传参形式,一种是在定义action行为时候进行请求,请求完成后挂到state里面再向下进行传递,即在js代码中componentDidMount发起dispath,然后通过this.props就可以拿到了。建议好好看一下阮一峰老师的例子再写,很基础的问题,没有其它意思,多看看别人代码,之后还有redux的分文件夹,也可以参考下别人的再自己写,这块还是有点乱的。
mySkey
#4
redux我是分了文件夹的,这里是用了react-redux,将state和action通过connect传入了组件,上面出现的问题我也也解决了。是我使用了路由异步打包方式引入,在compontDidMount中异步获取的数据就会一直存入redux
oyb81076
#5
应该是外部某个组件导致的。类似于:
<div key={news.length}>
<NewsComponent/>
</div>
或者
if (isLoading) {return <Loading/>}
else return <NewsComponent/>;
这些写法都在store的修改的时候引起销毁并创兴创建节点而不是更新节点。
你在外部的组件上一个个的加componentDidMount(){console.log(“mount”)}
看看到底是哪个组件的锅。
zxuqian
#7
你的props.add这个函数应该更新了redux的值然后引起上层组件重新渲染,然后上层的组件重新渲染后导致此组件重新创建了,检查一下是不是上层组件里边是不是把此组件定义到render中了,或者定义成了函数,以至于每次刷新产生的都是新的实例。