首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从formik内部的组件中设置formik值。

从formik内部的组件中设置formik值。
EN

Stack Overflow用户
提问于 2021-02-03 15:54:19
回答 1查看 76关注 0票数 2

我正在使用formik,我有一个输入,可以从一个自动完成器和一个位于formik内部的组件中编辑。

它是这样的:

代码语言:javascript
复制
<Formik
          initialValues={endUserLocationEdit}
          onSubmit={saveEndUserLocation}
        >
          {props => {
            const {
              values,
              touched,
              errors,
              status,
              isSubmitting,
              validateParcelContainer,
              setFieldValue,
              handleChange,
              handleSubmit,
              handleBlur

            } = props;

            return (<form className="form" onSubmit={handleSubmit}>

             <Autocomplete
                    fullWidth
                    id="rulLocationFk"
                    name="rulLocationFk"
                    value={values.rulLocationFk}
                    onChange={(event, newValue) => setFieldValue("rulLocationFk", newValue)}
                    onInputChange={(event, newInputValue) => {
                      searchLocation(values.locStatePk, newInputValue);
                    }}
                    getOptionSelected={(option, value) => value != null ? option.locName === value.locName : null}
                    getOptionLabel={(option) => option.locName}
                    options={locationList}
                        error={errors.locStatePk && touched.locStatePk}
                        renderInput={(params) => <TextField {...params} label="Location" variant="outlined" />}
                      />

         <MapCaller  > </MapCaller>

如您在“自动完成”中所看到的,我使用setFieldValue编辑value={values.rulLocationFk}

现在,在formik中,我还有一个可以编辑values.rulLocationFk值的组件

我像这样调用formik中的组件:

代码语言:javascript
复制
<MapCaller  > </MapCaller>

如何将参数values.rulLocationFk传递给MapCaller,并在MapCaller中编辑它?

我想大概是:

代码语言:javascript
复制
  <MapCaller location={values.rulLocationFk} setLocation={setFieldValue} > </MapCaller>

但那不起作用

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-08-18 15:42:48

我同意上面的评论。

还有一个想法:这并不能完全解决您正在使用的实现,但是我喜欢在formik之外使用访问值的一个快速模式是将ref设置为innerRef属性,然后可以使用ref访问formik值。

代码语言:javascript
复制
const formikRef = useRef(null)
<Formik
  innerRef={formikRef}
  initialValues={{
   valueName = "",
  ...

and then you can grab 
formikRef.current.values.valueName
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66031052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档