为了账号安全,请及时绑定邮箱和手机立即绑定

react数据传递问题

react数据传递问题

慕运维8079593 2018-12-18 22:21:22
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吗?


查看完整回答
反对 回复 2018-12-18
  • 1 回答
  • 0 关注
  • 590 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信