当前位置: 首页 > 面试题库 >

表单propType失败:您在没有`onChange`处理程序的情况下为表单字段提供了`value`属性

陈鸿才
2023-03-14
问题内容

加载我的React应用程序时,我在控制台中收到此错误。

警告:表单propType失败:您在value没有onChange处理程序的情况下向表单字段提供了prop
。这将呈现一个只读字段。如果该字段应可变使用defaultValue。否则,设置onChangereadOnly。检查的渲染方法
AppFrame

我的AppFrame组件如下:

class AppFrame extends Component {
    render() {
        return (
            <div>
                <header className="navbar navbar-fixed-top navbar-shadow">
                    <div className="navbar-branding">
                        <a className="navbar-brand" href="dashboard">
                            <b>Shire</b>Soldiers
                        </a>
                    </div>
                    <form className="navbar-form navbar-left navbar-search alt" role="search">
                        <div className="form-group">
                            <input type="text" className="form-control" placeholder="Search..."
                                   value="Search..."/>
                        </div>
                    </form>
                    <ul className="nav navbar-nav navbar-right">
                        <li className="dropdown menu-merge">
                            <span className="caret caret-tp hidden-xs"></span>
                        </li>
                    </ul>
                </header>

                <aside id="sidebar_left" className="nano nano-light affix">

                    <div className="sidebar-left-content nano-content">

                        <ul className="nav sidebar-menu">
                            <li className="sidebar-label pt20">Menu</li>
                            <li className="sidebar-label">
                                <IndexLink to="/" activeClassName="active">Dashboard</IndexLink>
                            </li>
                            <li className="sidebar-label">
                                <Link to="/fixtures" activeClassName="active">Fixtures</Link>
                            </li>
                            <li className="sidebar-label">
                                <Link to="/players" activeClassName="active">Players</Link>
                            </li>
                        </ul>

                    </div>

                </aside>
                <section id="content_wrapper">
                    <section id="content" className="table-layout animated fadeIn">
                        {this.props.children}
                    </section>
                </section>
            </div>

        )
    }
}

export default AppFrame;

我正在努力找出我实际上在这里做错了什么。该应用程序启动并运行,但是我正在尝试删除所有控制台警告/错误。


问题答案:

您已经在搜索输入中直接输入了一个值,但由于您已经有一个占位符,因此看不到那里的好处。您可以从以下位置删除该值:

<input type="text" className="form-control" placeholder="Search..." value="Search..."/>

对此:

<input type="text" className="form-control" placeholder="Search..." />

或者,如果您认为必须拥有它,请将其设置为defaultValue

<input type="text" className="form-control" placeholder="Search..." defaultValue="Search..."/>

文档:https : //facebook.github.io/react/docs/un受控-
components.html#default-
values



 类似资料:
  • 这是我的配置: 显然,我有一个路由/后台/登录的控制器,它使用正确的输入名(_username,_password)呈现登录表单。 当我编译表单时,如果我输入了错误的用户名和密码数据,我就会正确地出现错误的凭据,但是如果我输入了正确的数据,我就会以匿名用户的身份被重定向回登录页面。 一些应用程序/日志。。。 如何在第2行看到登录成功,但当控制器重定向到安全的我获得访问拒绝(第8行) 我错在哪里?非

  • 问题内容: 我想要一种简单的,最好是基于注释的方式,将外部属性注入到Java程序中,而无需使用spring框架() SomeClass.java application.yml 在标准库中是否有建议的方法? 问题答案: 我最终使用apache commons配置: pom.xml: src /…/ PropertiesLoader.java /src/main/resources/applicat

  • 作为Joomla的一名新PHP开发人员,我一直在尝试在网页上创建表单。我找不到一个合适的来源可以轻松记录这些步骤。但经过大量搜索,我发现:http://www.ostraining.com/blog/how-tos/development/getting-started-with-jform/ 但是我不知道这些文件在我的主机上去了哪里。 有人能概述一下这些步骤吗。。。我不是在寻找完整的代码。就像:

  • 表单是让用户与我们的网页应用程序交互的基本元素。Flask 本身并不会帮助我们处理表单,但是 Flask-WTF 扩展让我们在我们的 Flask 应用程序中使用流行的 WTForms 包。这个包使得定义表单和处理提交容易一些。 Flask-WTF 我们想要使用 Flask-WTF 做的第一件事情(在安装它以后)就是在 myapp.forms 包中定义一个表单。 # ourapp/forms.py

  • 我有一个使用redux表单的注册React组件,我的onSubmit基本上发送一个异步操作。我正在尝试使用Ezyme和Jest测试我的组件,方法是向我的分派添加一个间谍,并检查是否在模拟表单提交时调用分派。然而,我的测试失败了。 这是我的注册redux表单组件: 这是我的测试: 我的测试失败,出现以下错误:expect(jest.fn())。ToHaveBeenCall()预期已调用模拟函数。 请