如何解决反应-无法在挂钩组件中分派动作
在功能组件的useffect挂钩中使用调度, 下面的代码显示错误页面,如下所示;
组件:
import { GetParks } from "../../../redux/actions/survey_actions"
...
function BarcodeGenerator(props) {
const dispatch = useDispatch();
useEffect(() => {
dispatch(props.GetParks());
},[]);
动作:
export const GetParks = (Id) => async (dispatch,getState) => {
try {
const response = await axiosHelper.get("api/survey/GetParks",{
params: {
Id,},});
debugger;
response = response.data;
if (response.status !== ResponseStatus.SUCCESS) {
dispatch({
type: GET_PARKS,payload: [1,4555,34],});
}
} catch (error) {
catchCallback(error);
}
};
const _getParks = (data) => ({
type: GET_PARKS,payload: data,});
如何正确地将动作分配给减速器
解决方法
操作必须是一个普通对象,如错误说明中所述。例如。可以直接按原样使用分派:
if (*statement*) {
dispatch({
action: DO_SMTH,payload: true
})
}
,或者如果您想编写干净的可重用代码,则使操作创建者返回相等的对象:
if (*statement*) {
dispatch(doSmth(true));
}
function doSmth(toggle) {
return ({
action: DO_SMTH,payload: toggle
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。