Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是否应该忽略React警告:输入元素不应该从非受控切换到受控? 错误代码_Javascript_Reactjs_State - Fatal编程技术网

Javascript 我是否应该忽略React警告:输入元素不应该从非受控切换到受控? 错误代码

Javascript 我是否应该忽略React警告:输入元素不应该从非受控切换到受控? 错误代码,javascript,reactjs,state,Javascript,Reactjs,State,警告:组件正在更改要控制的时间类型的非受控输入。输入元件不应从非受控切换到受控(反之亦然)。决定在组件的使用寿命内使用受控或非受控输入元件。 描述 因此,我有一个组件,它根据数组中的项动态呈现多个输入字段。我的数组包含7天,我每天循环多个输入字段。每个输入字段都有一个操作。通过单击按钮,我可以选择某些输入字段是否需要具有相同的内容或不同的内容。每个输入字段还需要具有唯一的状态。因此,我创建了一个空状态,如下所示: constructor(props) { super(props)

警告:组件正在更改要控制的时间类型的非受控输入。输入元件不应从非受控切换到受控(反之亦然)。决定在组件的使用寿命内使用受控或非受控输入元件。

描述 因此,我有一个组件,它根据数组中的项动态呈现多个输入字段。我的数组包含7天,我每天循环多个输入字段。每个输入字段都有一个操作。通过单击按钮,我可以选择某些输入字段是否需要具有相同的内容或不同的内容。每个输入字段还需要具有唯一的状态。因此,我创建了一个空状态,如下所示:

constructor(props) {
        super(props);
        this.state = {};
    }
() => this.setState({ ['show' + day + '_morning'] : true })
() => this.setState({ ['show' + day + '_afternoon'] : true })
然后在我的循环中这样创建:

constructor(props) {
        super(props);
        this.state = {};
    }
() => this.setState({ ['show' + day + '_morning'] : true })
() => this.setState({ ['show' + day + '_afternoon'] : true })
尽管我可以将这些状态预先定义为“showMonday\u morning”,等等。。我试图避免它,因为我想学习如何在循环中动态创建状态,以供将来参考

一切正常,但我收到上面的错误代码

问题:
我可以对这个错误掉以轻心,还是应该解决这个问题?如果必须解决这个问题,我如何在循环中动态创建和添加状态并避免此错误?

据我所知,React.js告诉您决定使用一种类型的输入元素,受控或不受控,如果您在一个组件中同时使用这两种元素,您将看到警告,我建议制作一个定制的InputComponent,您可以在React应用程序中使用它


此警告不被认为是危险的,它用于更干净的反应和优化。

您不需要在构造函数中动态创建状态。相反,您可以在渲染中有条件地使用它

<input value={this.state.['showSatMorning'] || ''} />

我可以对这个错误掉以轻心,还是应该解决这个问题


虽然此警告不会影响应用程序中的任何内容,但最好处理此类警告以保持应用程序的一致性并避免意外问题

感谢您的澄清!我也宁愿有一个干净无误的应用程序,所以这很有帮助!我能收到你的电子邮件@Shubham吗Khatri@Pie你可以在LinkedIn或Twitter上与我联系,我会给你发电子邮件id@ShubhamKhatri我已经在twitter上发送了一封DM。一封电子邮件请求谢谢你的澄清!我也宁愿有一个干净无误的应用程序,所以这很有帮助!看看这个:+1:好运气,非常有趣的文章!我想我了解一点;然而,我仍然坚持使用我的代码,并且觉得没有其他选择可以问一个与之相关的新问题:。