首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不建议使用props.mutators

不建议使用props.mutators
EN

Stack Overflow用户
提问于 2018-11-27 16:20:37
回答 1查看 2.4K关注 0票数 4

我的代码有效,但我收到警告:

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

举个例子:

https://codesandbox.io/s/kx8qv67nk5

代码语言:javascript
复制
   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}>
                                        <label>Cust. #{index + 1}</label>
                                        <Field
                                            name={`${name}.firstName`}
                                            component="input"
                                            placeholder="First Name"
                                        />
                                        <Field
                                            name={`${name}.lastName`}
                                            component="input"
                                            placeholder="Last Name"
                                        />
                                        <GithubField name="user1" onSearch={(item) => {
                                            this.api.getByFirstname(item).then(result => console.log(result));
                                        }} />
                                        <span
                                            onClick={() => fields.remove(index)}
                                            style={{ cursor: 'pointer' }}>❌</span>
                                    </div>
                                ))}
                        </FieldArray>

                        <div className="buttons">
                            <button type="submit" disabled={submitting || pristine}>
                                Submit
                            </button>
                            <button
                                type="button"
                                onClick={reset}
                                disabled={submitting || pristine}>
                                Reset
                            </button>
                        </div>
                        <pre>{JSON.stringify(values, 0, 2)}</pre>
                    </form>
                )
            }}
        />

怎么做正确的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-27 17:32:14

警告已经告诉你该怎么做。

您必须使用form.mutators而不仅仅是mutators

为此,您可以将代码更改为

代码语言:javascript
复制
mutators: { push, pop }

代码语言:javascript
复制
form: { mutators: { push, pop  } }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53503929

复制
相关文章

相似问题

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