亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 637 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號