react-redux的传值问题我想做的是:a,b,c三个组件用react-redux进行数据管理,但是我现在遇到的问题是:b通过属性赋值,c通过props收到a的值,但是b的state值改变,c却不会变化了,很奇怪 handleSearch(value) { this.state.historyList.push(value) this.setState({
historyList: this.state.historyList //1
})
}
render() { return (
<Fragment>
<SearchHeader toSubmit={this.handleSearch}/>
<SearchContent historyList={this.state.historyList} /> //2
</Fragment>
)
}如代码所示:原本this.state.historyList可以用通过属性传值给子组件SearchContent .实现中间组件state的状态改变,进行子组件的render函数再次调用刷新数据;但我发现:export default connect(mapStateToProps, mapDispatchToProps)(SearchContent)把子组件用connect连接了, 最后中间组件的this.state.historyList改变,子组件没触发render函数的调用,但是改为export default SearchContent这样能收到新的数据哪里写错了吗?不知道有没有说清楚。。。
1 回答
互换的青春
TA贡献1797条经验 获得超6个赞
handleSearch(value) { this.setState({ historyList: [...this.state.historyList, value] }) }
永远不要直接改变state里的数组和对象的内部值,涉及到数据对比。大部分情况下,react会认为你没有更新数据。你用的是PureComponent吗?
添加回答
举报
0/150
提交
取消