标签: react-final-form

如何在React-Final-Form中收听Field组件的onChange?

Redux-form "Field"组件提供onChange属性.每当从基础输入触发onChange事件时将调用的回调.此回调允许为Field获取"newValue"和"previousValue".

React-final-form "Field"组件没有此属性.

那么,我如何才能获得相同的功能?

javascript reactjs react-final-form

5
推荐指数
4
解决办法
9064
查看次数

如何设置 react-final-form onSubmit 值参数类型 TypeScript

如何在 react-final-form 中设置更改 onSubmit 的值类型。

inteface IValues {
    name: string;
}
<Form onSubmit={(values: IValues) => {}}>   // Error happens here
//    Types of parameters 'values' and 'values' are incompatible.
//    Type '{}' is missing the following properties from type 'IFormValues': name
Run Code Online (Sandbox Code Playgroud)

这有效,但我无法获得 value.name

<Form onSubmit={(values: object) => {
    // Property 'name' does not exist on type 'object'
    values.name
}}>
Run Code Online (Sandbox Code Playgroud)

我可以按如下方式转换为 IValues 以提取名称。

<Form onSubmit={(values: object) => {
    const { name } = values as IValues;
}}>
Run Code Online (Sandbox Code Playgroud)

onSubmit 来自 Config,我尝试查找如何设置 FormData …

typescript reactjs typescript-typings react-final-form

5
推荐指数
1
解决办法
1445
查看次数

反应最终形式。如何从组件状态设置字段值

我正在尝试向我的论坛添加日期选择器。问题是日期选择器只能通过组件状态工作。意味着选择的值进入状态。

我正在尝试强制最终表单字段使用该状态值。但我似乎无法弄清楚。

基本上试图做到这一点:

<Field name="field1" value={this.state.date}/>
Run Code Online (Sandbox Code Playgroud)

reactjs final-form react-final-form

5
推荐指数
1
解决办法
1万
查看次数

react-native:最终形式关注下一个领域

我无法将我的下一个领域集中在最终形式和本机和功能组件上。关于这种情况,大约有 0 个文档。

<Field
  component={TextField}
  name="title"
  returnKeyType={"next"}
  blurOnSubmit={false}
  onSubmitEditing={() => {
    _descriptionFieldRef.current.focus();
  }}
/>
Run Code Online (Sandbox Code Playgroud)

reactjs react-native final-form react-final-form

5
推荐指数
0
解决办法
616
查看次数

在react-final-form中清除输入时清除字段的值

我正在使用自定义组件react-final-form。输入更改时,它将值设置为字段address。但是当清除输入时,它不会更新字段的值。所以我试图用形式变异器来做到这一点。

我已经添加了一个用于清除字段的修改器:

mutators={{
  clear: ([address], state, { changeValue }) => {
    changeValue(state, "address", () => undefined);
  }
}}
Run Code Online (Sandbox Code Playgroud)

我尝试将其添加到我的自定义 onChange 函数中,但它不起作用。

onChange={event =>
  props.input.onChange !== undefined
    ? props.input.onChange({ value: event })
    : form.mutators.clear
}
Run Code Online (Sandbox Code Playgroud)

或者也许这根本不需要变异器就可以完成?我将衷心感谢您的帮助。这是一个实例(清除该字段仅适用于单击按钮 as onClick={form.mutators.clear})。

reactjs react-final-form

5
推荐指数
2
解决办法
2万
查看次数

如何验证 Material ui stepper 中的每个表单步骤?

下面是典型的 material-ui 步进器。

  export default function HorizontalLinearStepper() {
    const classes = useStyles();
    const [activeStep, setActiveStep] = React.useState(0);
    const [skipped, setSkipped] = React.useState(new Set());
    const steps = getSteps();

    const isStepOptional = step => {
        return step === 1;
    };

    const isStepSkipped = step => {
        return skipped.has(step);
    };

    const handleNext = () => {
    let newSkipped = skipped;
    if (isStepSkipped(activeStep)) {
        newSkipped = new Set(newSkipped.values());
        newSkipped.delete(activeStep);
    }

    setActiveStep(prevActiveStep => prevActiveStep + 1);
    setSkipped(newSkipped);
};

const handleBack = () => {
    setActiveStep(prevActiveStep …
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui react-final-form

5
推荐指数
2
解决办法
4482
查看次数

props.mutators 已弃用

我的代码正在运行,但收到​​警告:

警告:从 React Final Form v3.3.0 开始,props.mutators 已被弃用,并将在 React Final Form 的下一个主要版本中删除。使用: props.form.mutators 代替。检查您的 ReactFinalForm 渲染道具。

以这个例子:

https://codesandbox.io/s/kx8qv67nk5

   return   <Form
            onSubmit={() => console.log('ok')}
            mutators={{
                ...arrayMutators
            }}
            initialValues={ {customers: [{firstName: 'a', lastName: 'b'}]} }
            render={({
                         handleSubmit,
                         mutators: { push, pop }, // injected from final-form-arrays above
                         pristine,
                         reset,
                         submitting,
                         values
                     }) => {
                return (
                    <form onSubmit={handleSubmit}>
                        <div className="buttons">
                            <button
                                type="button"
                                onClick={() => push('customers', undefined)}>
                                Add Customer
                            </button>
                        </div>
                        <FieldArray name="customers">
                            {({ fields }) =>
                                fields.map((name, index) => (
                                    <div key={name}> …
Run Code Online (Sandbox Code Playgroud)

reactjs final-form react-final-form react-final-form-arrays

4
推荐指数
1
解决办法
1481
查看次数

为 Final-form-arrays 中的数组提供初始值会导致状态更改重置整个表单,我该如何防止这种情况?

我有一个使用最终表单数组的表单。表单有效且验证有效,但是,当我在组件内进行状态更改时,它会重置我的所有值。

我能够使用react-final-form-arrays提供的相同示例复制该问题:

https://codesandbox.io/embed/react-final-form-field-arrays-om6p6

我添加了一个按钮来切换状态更改。本质上,只需尝试在表单中填充值,然后更改状态即可。表格将重置,我不明白为什么会出现这种情况。如果我删除初始值,这种情况就不会发生。

有谁知道为什么会这样?

forms reactjs react-final-form react-final-form-arrays

4
推荐指数
1
解决办法
4367
查看次数

React 最终形式重置为初始值

我对反应最终形式有问题,它在 3 秒后重置值并恢复到初始值...花了 3 天进行调试,但没有任何变化...这是代码...任何想法和信息都会受到影响,谢谢

const ChoiceQuestionFrom = ({ editMode = true, onSubmit = () => {}}) => {
  const handleValidations = (values) => {
    let errors = {};
    if(!values.question){
        errors.question = "Question Required !"
    }
    return errors;
}
  return (
    <Form
      onSubmit={(values) => {
        return onSubmit(values);
      }}
      render={_ChoiceQuestionFrom}
      editMode={editMode}
      initialValues={{
        type: "question",
        qType: "pollMultiChoice",
        question: "",
        answers: [{ answer: "", isCorrect: false }],
      }}
      validate={handleValidations}
    />
  );
};

const _ChoiceQuestionFrom = (props) => {
  const {
    editMode,
    values,
    submitting, …
Run Code Online (Sandbox Code Playgroud)

reactjs react-final-form

4
推荐指数
1
解决办法
1859
查看次数

反应日期选择器与反应最终形式

我在react-final-form中使用react-datepicker。我正在使用具有多个步骤的模板https://codesandbox.io/s/km2n35kq3v?file=/index.js。问题是我无法将日期选择器集成到组件内。我的代码如下所示:

    return (

        <Field name={props.name} parse={() => true}>
            {props => (
                <DatePicker
                    locale="de"
                    placeholderText="Datum eingeben"
                    selected={startDate}
                    dateFormat="P"
                    openToDate={new Date()}
                    minDate={new Date()}
                    disabledKeyboardNavigation
                    name={props.name}
                    value={startDate}
                    onChange={(date) => setStartDate(date)}
                />
            )}
        </Field>

    );
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何使用它以便数据在表单末尾传递?

此致

reactjs react-datepicker react-final-form

3
推荐指数
1
解决办法
3914
查看次数