目前正在尝试学习React JS / JSX并且一直在创建一个简单的登录表单:
/** * @jsx React.DOM */ var loginForm = React.createClass({ getInitialState: function() { return {loggedIn : false}; },login : function(event) { alert('logging in'); },logout : function(event) { alert('logging out'); },render: function() { return ( <div> <form /*action={this.server+'/login.php'}*/> <label htmlFor="username">Username:</label> <input type="text" id="username" name="username" /> <label htmlFor="password">Password:</label> <input type="password" id="password" name="password" /> </form> </div> <div> <button onClick={this.login}> Login </button> <button onClick={this.logout}> Logout </button> </div> ) } }); React.renderComponent( <loginForm />,document.body );
如果我删除< button>标签它工作正常但否则抛出错误:
未捕获的错误:解析错误:第27行:意外的标识符
< button onChange = {this.logout}>登出 …
^
解决方法
你试图从函数中返回两个div.在
the docs它说:
Currently,in a component’s render,you can only return one node; if
you have,say,a list of divs to return,you must wrap your components
within a div,span or any other component.Don’t forget that JSX compiles into regular js; returning two
functions doesn’t really make syntactic sense. Likewise,don’t put
more than one child in a ternary.
所以你可以通过将两个根div包装在一个div中来解决它;或者将第二个根div(带按钮)移动到第一个根区域.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。