0
我有一個組件的狀態是這樣的:陣營SETSTATE未設置狀態
this.state = {
mode: 'in',
current: {
messageId: '',
},
};
然後我SETSTATE這樣的:
const newState = update(this.state, { mode: { $set: 'out' },
current: { messageId: { $set: '123' } } });
this.setState(newState);
我一直在做這種方式,因爲我開始學習反應,它工作,除了這次它不工作,無論什麼原因。
與console.log(newState)
它顯示它們都正確更新:mode: 'out'
和'current.messageId': '123'
。
但是當我setState
只有'current.messageId': '123'
正在設置,但mode
仍然等於in
。
mode
狀態將頁面的佈局從<InLayout />
更改爲<OutLayout />
。我以前用過這種方法很多次,它的工作,仍然有效...
所以困惑。誰能幫忙?
'update'方法的作用是什麼? –
我不知道你的'update'方法做了什麼,但是試試這個'this.setState({... newState})' – Panther
不知道什麼更新函數。但這是你應該做的'const newState = {... this.state}; newState.mode ='out'; newState.current.messageId ='123'; this.setState(newState);' – anoop