1. 程式人生 > >關於react-redux的mapStateToProps取到值(state會更新變化)但不會註入props的問題

關於react-redux的mapStateToProps取到值(state會更新變化)但不會註入props的問題

狀態 持續更新 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的問題