Javascript 如何使用Formik&;在表单中没有初始值;打字稿?

Javascript 如何使用Formik&;在表单中没有初始值;打字稿?,javascript,reactjs,typescript,formik,react-typescript,Javascript,Reactjs,Typescript,Formik,React Typescript,在我的React Typescript应用程序中,有一个带有字段的Formik表单,这些字段不需要填充任何值(即占位符文本可见) 我们如何才能做到这一点 尝试1: 在Formik的initialValues中,我尝试不定义任何表单最初应为空的值 但是,当用户在这些表单中键入内容时,浏览器JS控制台会显示警告: js:1警告:组件正在将非受控输入更改为受控输入。这可能是由值从未定义更改为已定义的值引起的,这是不应该发生的。在组件的使用寿命内,决定使用受控或非受控输入元件。更多信息: 输入时

在我的React Typescript应用程序中,有一个带有字段的Formik表单,这些字段不需要填充任何值(即占位符文本可见)

我们如何才能做到这一点

尝试1:

在Formik的
initialValues
中,我尝试不定义任何表单最初应为空的值


但是,当用户在这些表单中键入内容时,浏览器JS控制台会显示警告:

js:1警告:组件正在将非受控输入更改为受控输入。这可能是由值从未定义更改为已定义的值引起的,这是不应该发生的。在组件的使用寿命内,决定使用受控或非受控输入元件。更多信息: 输入时


尝试2:

尝试在Formik的
initialValues
prop中将这些值设置为
null


{({值、错误、触摸、把手更改、把手模糊、把手提交、isSubmitting、setFieldValue})=>(
项目类型
setFieldValue(“itemType”,选项!.value)}
onBlur={handleBlur}
values={values.itemType}
/>
价格范围
)}
)
}

据我所知,您似乎还没有在任何地方定义接口

[ ... ]
const initialValues: Values = {
   itemType: 'any',
   minPrice: undefined,
   maxPrice: undefined,
};

<Formik initialValues={initialValues} {...}>
[…]
常量初始值:值={
itemType:'任何',
明普莱斯:未定义,
maxPrice:未定义,
};
使用接口时,还记得将值设置为可选值的时间吗?如果必须定义初始值,请使用undefined和NOTNULL


你的应用程序现在应该通过typscript规则并编译。

你导入了Select组件吗?@AndersGrandjean-Thomsen是的,尽管问题中没有显示。
Type 'string' is not assignable to type 'never'.  TS2322

    66 |                 <Formik
    67 |                     initialValues={{
  > 68 |                         itemType: 'any',
       |                         ^
    69 |                         minPrice: null,
[ ... ]
const initialValues: Values = {
   itemType: 'any',
   minPrice: undefined,
   maxPrice: undefined,
};

<Formik initialValues={initialValues} {...}>