假设state中有一个布尔值变量dataBool
想在componentDidMount中的ipcRenderer中根根据dataBool做不同的操作
componentDidMount() {
const { dataBool } = this.props;
ipcRenderer.on('save-data', () => {
if (dataBool) {
// ...
} else {
// ...
}
})
}
这个时候dataBool不会根据state中的dataBool的变化而变化, 他会保持初始化时的值, 如果初始化是false, 那它就永远是false
那么怎么解决呢
很简单
将操作单独写在一个函数里面, 然后调用这个函数
componentDidMount() {
ipcRenderer.on('save-data', () => {
this.saveData();
})
}
saveData = () => {
const { dataBool } = this.props;
if (dataBool) {
// ...
} else {
// ...
}
}