来自 redux store 的 Formik 初始值

Formik initial values from redux store

我从 redux store 获取 formik initialValues 的值,但它们在组件安装时未定义。

原始示例

const value1 = useSelector(state => state.store.value1)

const initialValues = { value1 }

const formik = useFormik({ initialValues })

...

return (
 <>
   <input name='value1' value={formik.values.value1} />
 </>
)

有什么方法可以依赖这个值吗?或动态加载它们?

您可以通过传递 Redux 状态的 props 值来设置 Formik 中的初始值。

const { user } = this.props; 

return ( 
  <Formik 
    enableReinitialize={true} 
    initialValues={{
      name: user.name ? user.name : "",
      age: user.age ? user.age : ""
   }} 
  > ... 
 </Formik>
)