【问题标题】:Formik form not renderingFormik 表单不呈现
【发布时间】:2021-10-19 17:31:16
【问题描述】:

只是为了学习目的而设置了一个基本的傻瓜表单......似乎无法呈现。没有错误。功能组件运行。没什么可看的……

MyForm.tsx

export const MyForm: React.FC = () => {

    console.log("MyForm has been called")
    return (

        <div>

            <Formik initialValues={{ firstName: "roberto" }} onSubmit={data => { console.log(data) }}>
                {({ values, handleChange, handleSubmit, handleBlur }) => {
                    <form onSubmit={handleSubmit}>
                        <TextField value={values.firstName} onChange={handleChange} onBlur={handleBlur} name="firstName" />
                        <pre>JSON.stringify(values)</pre>
                    </form>
                }}

            </Formik>

        </div >
    )
}

我已将 MyForm 正确导入 App.tsx,而 MyForm 目前是我从 App.tsx 返回的全部内容。

没有错误。没什么...

【问题讨论】:

    标签: reactjs formik tsx


    【解决方案1】:

    我认为您没有返回您的表单,这就是它不呈现的原因:

    export const MyForm: React.FC = () => {
    
        console.log("MyForm has been called")
        return (
    
            <div>
    
                <Formik initialValues={{ firstName: "roberto" }} onSubmit={data => { console.log(data) }}>
                    {({ values, handleChange, handleSubmit, handleBlur }) => (
                        <form onSubmit={handleSubmit}>
                            <TextField value={values.firstName} onChange={handleChange} onBlur={handleBlur} name="firstName" />
                            <pre>JSON.stringify(values)</pre>
                        </form>
                    )}
    
                </Formik>
    
            </div >
        )
    }
    

    请注意,我将函数的花括号更改为 &lt;form&gt; 周围的括号。或者,您可以留下花括号,而改为

    {({ values, handleChange, handleSubmit, handleBlur }) => {
      return (<form>...</form>)
    }}
    

    【讨论】:

    • 呃,这很烦人。不过谢谢!显式/隐式返回花括号组合令人讨厌。
    猜你喜欢
    • 2012-07-10
    • 2012-04-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多