我对react-redux
完全陌生。在这里,我正在使用thunk
。现在,
我有以下情况,
this.props.removeTech({ newArr, removeType });
我从组件中调用此操作,
export function removeTech(data) {
return (dispatch) => {
dispatch({
type: REMOVE_TECH,
data: data,
});
}
}
并更新状态
但是
我在做
this.props.removeTech({ newArr, removeType });
let validateData = this.validate(removeType, noc);
console.log("removing data",validateData);
this.setState({
showError: validateData
})
因此validateData需要一些应该更新的数据,但是它获取了以前的数据,因此它没有返回正确的值。因此,
我想要的是我想在状态更新后调用该函数。那么,有人可以帮我吗?
答案 0 :(得分:0)
如果validate
是异步函数,请使用Promise
并在setState
中调用then
。
如果validate
是另一个动作,也许更新状态showError
是他的工作。
对于您的信息,您不需要thunk来使用removeTech,只需执行以下操作即可:
export const removeTech = data => ({
type: REMOVE_TECH,
data,
});
答案 1 :(得分:0)
您可以对操作removeTech
返回承诺,然后可以在then()
上使用this.props.removeTech
方法。
类似这样的东西:
export function removeTech(data) {
return (dispatch) => {
dispatch({
type: REMOVE_TECH,
data: data,
});
return Promise.resolve();
}
}
然后
this.props.removeTech({ newArr, removeType }).then(() => {
let validateData = this.validate(removeType, noc);
console.log("removing data",validateData);
this.setState({
showError: validateData
})
});
希望这会有所帮助:)