關於react-redux的mapStateToProps取到值(state會更新變化)但不會註入props的問題
阿新 • • 發佈:2018-08-13
狀態 持續更新 ive .com pat pst reducer chrome 之一
一、問題描述
想通過react-redux和redux實現react組件之間的通信,reducer、action、store都編寫正確,mapDispatchToProps也能正確傳值.唯獨mapStateToProps的return出現了問題。
//connect參數之一,獲取參數 , state為接受的參數 const mapStateToProps = (state) => { console.log(state.user);//可持續更新 return { user:state.user;//組件AppContent的this.props.user始終為空 } } AppContent = connect(mapStateToProps)(AppContent)
但是用chrome的react插件查看props狀態是存在user數據的(但僅存在第一次添加,後續再添加數據也不會更新props)
所以在生命周期componentWillReceiveProps分別打印了nextProps(接收新的props)和this.props,發現:
console.log(nextProps) //user[1] 第一次添加數據傳入了nextProps
console.log(this.props) //user[0] 依然不存在數據
原本想著既然nextProps可以拿到數據,用nextPros賦值不就行咯!但是發現後面添加2、3、4....次數據都沒效果了.連componentWillReceiveProps函數都不進去了。但是mapStateToProps的state值卻不斷更新!
state.user的值↓
二、解決方法
待解決
關於react-redux的mapStateToProps取到值(state會更新變化)但不會註入props的問題