2017-05-14 40 views
0

を受け取ることができるコンポーネントので、私が持っている:私はこれがために起こることを知っている減速で更新

this.props.items !== nextProps.items 

if (action.type === 'remove_item') { 
     delete state.itemsList[action.itemId]; 
     return { 
     ...state 
     } 

しかし、今componentWillReceiveProps(nextProps)は違いを見ることができません減速機の状態を直接
に変更しましたが、この変更を伝播する方法がわからないので、nextPropsに新しい状態データがありますか?

答えて

3

だからではなく、新しい配列を作成し、元の状態を変異していない

...state.itemsList.filter((_, index) => index !== action.itemId) 

を試してみてください。

3

状態オブジェクトが不変であり、不変オブジェクトに対して直接操作を行っているため、変更が表示されません。

これを試してみてください:

if (action.type === 'remove_item') { 
     var list = state.itemsList.splice(); 
     list[action.itemId] = null 
     return { 
     ...state, 
     itemsList: list, 
     } 

乾杯:)