我在调用thunk和异步时遇到问题。因此,这里是我的代码:重新启动调度不起作用
function fetchProvider() {
return (dispatch) => {
graphqlService(fetchProviderQuery)
.then((result) => {
dispatch({
type: FETCH_PROVIDER,
data: result.data.data.CurrentProvider,
});
});
};
}
class Dashboard extends React.Component {
componentDidMount() {
this.props.fetchProvider();
}
render() {
const { provider } = this.props;
return (
<div>
<ul>
<li>id: {provider.id}</li>
<li>name: {provider.name}</li>
<li>description: {provider.description}</li>
</ul>
</div>
);
}
}
const mapStateToProps = (state) => ({
provider: state.provider,
});
const mapDispatchToProps = (dispatch) => ({
fetchProvider:() => dispatch(fetchProvider()),
});
export default connect(mapStateToProps, mapDispatchToProps)(Dashboard);
我不知道为什么,但派遣内部fetchProvider行动的创建者不起作用。 graphqlService运行良好,在调度FETCH_PROVIDER动作数据传递到调度的时刻是正确的,但随后出现问题,减速器不会使用此操作调用。什么可能会导致这个问题?
你用'@ connect'装饰器装饰了你的'Dashboard'吗? Ifaik你需要它,能够调用调度功能。请参阅:https://stackoverflow.com/questions/36553814/what-is-the-use-of-connect-decorator-in-react-redux –
@TomDoodler,是的。这是上面代码中的最后一行。 –
在'FETCH_PROVIDER'操作触发之前'state.provider'为空或未定义? – MinusFour