繁体   English   中英

如何在依赖项 useEffect() 的更改值上调用 redux 操作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM