【问题标题】:Error: onSubmit doesn't work on reactjs jsx render method错误:onSubmit 不适用于 reactjs jsx 渲染方法
【发布时间】:2015-03-10 12:13:28
【问题描述】:

我正在尝试在节点服务器上的反应组件内创建一个表单,但我的 onSubmit 属性没有被编译。有什么想法吗? 这是我的代码:

/** @jsx React.DOM **/

var React = require('react');


module.exports = UserForm = React.createClass({
    handleSubmit: function (e) {
        e.preventDefault();
        console.log("teste");
    },

    render : function () {
        return (
            <div className="container">
                <form onSubmit= { this.handleSubmit } className="section">

                    <button className="btn waves-effect waves-light" type="submit">
                        Entrar
                        <i className="mdi-content-send right"></i>
                    </button>
                </form>
            </div>
        )
    }
});

这个渲染代码的输出是这样的:

<div class="container" data-reactid=".1vxqgp72xa8" data-react-checksum="-1342114635">

    <form class="section" data-reactid=".1vxqgp72xa8.0">
        <button class="btn waves-effect waves-light" type="submit" data-reactid=".1vxqgp72xa8.0.1">
             <span data-reactid=".1vxqgp72xa8.0.1.0">Entrar</span>
             <i class="mdi-content-send right" data-reactid=".1vxqgp72xa8.0.1.1"></i>
        </button><div class="preloader-wrapper big active" data-reactid=".1vxqgp72xa8.0.2">   
    </form>
</div>

这可能是一个愚蠢的错误,有人可以帮我找到它吗?

谢谢大家

【问题讨论】:

    标签: node.js reactjs onsubmit


    【解决方案1】:

    很简单,您没有提供回调。它应该是这样的:

    <form onSubmit={ this.handleSubmit } className="section">
    

    编辑: 在 cmets 中进行了一些讨论之后,很明显在将服务器呈现的 html 交付给浏览器之后,您并没有在前端安装应用程序。页面加载后调用:

    React.render(React.createElement(UserForm, {}), domElement);
    

    【讨论】:

    • 刚刚用你的答案更新了我的问题,但它仍然无法正常工作,我读到了一些关于服务器端渲染事件的问题。这可能与它有关吗?
    • 代替按钮怎么样?
    • 另外,如果您正在渲染应用程序服务器端,您是否也在安装应用程序客户端?你需要两者都做。添加 componentDidMount 处理程序并确保应用程序正在运行。
    • nope =/,我认为问题与 onSubmit 事件甚至没有呈现到最终 html 的事实有关。
    • 你是对的,componentDidMount 永远不会被调用。我需要做什么才能安装它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多