我正在努力對我的組件進行一些更新。我知道我應該不是設置道具裏面的狀態。然而,我不得不這樣做,使我的組件更新正常:React Native接受新的道具,componentWillReceiveProps
componentWillReceiveProps(nextProps) {
this.setState({
doctor: nextProps.data.name,
address: nextProps.data.address
})
}
有沒有更好的方法來做到這一點?是一個最好的辦法,如果我這樣做 - >
componentWillReceiveProps(nextProps) {
this.props.data.name = nextProps.data.name;
this.props.data.name = nextProps.data.address;
})
}
我試圖使用shouldComponentUpdate:
shouldComponentUpdate: function(nextProps, nextState) {
return nextProps.id !== this.props.id;
}
,但我並沒有爲me.c
不改變組件內的道具,這就是狀態... – dandavis
爲什麼你需要把你的道具進入狀態?你在改變它們嗎?當組件中正在使用的道具改變時,React渲染任何組件! – Idiot211
@ Idiot211,應用程序有ListView它存儲一些收藏夾項目,以不利我通過另一個組件(例如,g細節項目),當我回到ListView時,我仍然不滿意的項目和另一個項目消失。當我使用componentWillReceiveProps並使用新道具更新狀態時,它可以工作。我希望它確實有道理。 –