[英]How to call redux action on change value of dependency useEffect()?
我正在使用同一个库中的 react-hook-form 和 useStateMachine,这与 redux 几乎相同。
我用这个例子来做,但它没有用: https ://orizens.com/blog/integrating-react-hook-form-and-redux-toolkit-rtk/
正在更新 redux store,一切似乎都正常,除了我的 redux action 陷入了循环。 可能是什么问题,因为我做的一切都是一样的,但我不知道它可能是什么?
const FormWrapper = (props) => {
const useFormApi = useForm();
const { state, actions } = useStateMachine({ updateAction });
useReduxUpdater(useFormApi, actions.updateAction)
return (
<>
<FormProvider {...methods}>
<form onSubmit={methods.handleSubmit(props.onSubmit)}>
{props.children}
</form>
</FormProvider>
</>
)
}
export function useReduxUpdater (useFormApi, onChange) {
const valuesChanges = useFormApi.watch()
const values = useFormApi.getValues()
useEffect(() => {
onChange(values)
}, [valuesChanges])
}
export function updateAction(state, payload) {
return {
...state,
...payload
};
}
你忘记派遣了。
export function useReduxUpdater (useFormApi, onChange) {
const valuesChanges = useFormApi.watch()
const values = useFormApi.getValues()
const dispatch = useDispatch()
useEffect(() => {
dispatch(onChange(values))
}, [valuesChanges])
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.