从 formik 内的组件设置 formik 值

时间:2021-02-03 15:54:19

标签: javascript reactjs formik formik-material-ui

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

它是这样的:

<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 中的组件:

<MapCaller  > </MapCaller>

如何将参数 values.rulLocationFk 传递给 MapCaller,并在 MapCaller 内部对其进行编辑?

我认为:

  <MapCaller location={values.rulLocationFk} setLocation={setFieldValue} > </MapCaller>

但这不起作用

谢谢

0 个答案:

没有答案