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

React.js:使用一个onChange处理程序识别不同的输入

闾丘玮
2023-03-14
问题内容

好奇解决此问题的正确方法是:

var Hello = React.createClass({
getInitialState: function() {
    return {total: 0, input1:0, input2:0};
},
render: function() {
    return (
        <div>{this.state.total}<br/>
            <input type="text" value={this.state.input1} onChange={this.handleChange} />
            <input type="text" value={this.state.input2} onChange={this.handleChange} />
        </div>
    );
},
handleChange: function(e){
    this.setState({ ??? : e.target.value});
    t = this.state.input1 + this.state.input2;
    this.setState({total: t});
}
});

React.renderComponent(<Hello />, document.getElementById('content'));

显然,您可以创建单独的handleChange函数来处理每个不同的输入,但这不是很好。同样,您可以为单个输入创建一个组件,但是我想看看是否有一种方法可以做到这一点。


问题答案:

我建议坚持name使用input元素上的标准HTML属性来标识您的输入。另外,您不需要将“总计”作为单独的值保留在状态中,因为可以通过在您的状态中添加其他值来构成“总计”:

var Hello = React.createClass({
    getInitialState: function() {
        return {input1: 0, input2: 0};
    },
    render: function() {
        const total = this.state.input1 + this.state.input2;

        return (
            <div>{total}<br/>
                <input type="text" value={this.state.input1} name="input1" onChange={this.handleChange} />
                <input type="text" value={this.state.input2} name="input2" onChange={this.handleChange} />
            </div>
        );
    },
    handleChange: function(e) {
        this.setState({[e.target.name]: e.target.value});
    }
});

React.renderComponent(<Hello />, document.getElementById('content'));


 类似资料:
  • 在我的React Hooks应用程序中,我需要让用户键入输入字段1000毫秒。当1000ms过期时,将发送带有输入值的API请求。 该值在中设置: 一旦设置为新值就会发出API请求,因为是它的依赖项。通过这种方式,只使用结果用户输入而不是每个键击值来查询API,但输入保持不受控制。当我使用将当前值添加到输入时,用户无法在输入中键入,并且输入只接收最后键入的字符。 如何让用户键入的字符显示在输入中?

  • 问题内容: 我在数组中呈现对象输入元素的集合。 这使我可以编写onChange处理函数: 但是在此处理程序中,我需要更改的范围对象的ID。因此,我可以更改更改在渲染函数中创建输入元素的方式并更改: 现在,我的处理程序将接收range.id作为参数,但是现在我没有newName值。我可以使用裁判获得它 这是我知道的唯一解决方案,但我怀疑有更好的解决方案。 问题答案: 该参数还通过了,但参数前置到参数

  • 问题内容: 我正在为此寻求一个通用的解决方案。 考虑2个具有相同名称的无线电类型输入。提交后,选中的将确定以以下形式发送的值: 取消选择单选按钮时,更改事件不会触发。因此,如果已经选择了值=“ 1”的单选按钮,并且用户选择了第二个,则handleChange1()不会运行。这(无论如何对我而言)带来了一个问题,因为没有任何事件可以使我取消选择。 我想要的是一个针对复选框组值的onchange事件或

  • 当我呈现视图时,是,因为是我这样插入它。 如果我提交表单,我将执行以下处理程序: 所以基本上我总是要添加一个`stopmessage,不管是成功还是失败。 如何检索设置到另一个处理程序中的属性值?用胸腺嘧啶有可能吗? 注意:暂时,我将设置为控制器类的一个字段,并在处理程序周围设置/not null,以便始终能够看到它的值。这是一个解决办法,但似乎不是正确的做法。因为我是个新手,所以我很乐意听到处理

  • 我正在与Spring Boot合作一个项目。JdbcNamedTemplates在我的DAO中用于访问数据。我在DAO中编写查询,然后在运行时映射一些参数以获得正确的数据。 现在,我必须根据请求从多个相同的表中检索数据。检索逻辑是相同的,只是我需要使用不同的表名。JdbcTemplate不允许使用表名作为参数。我不想使用字符串格式,因为我希望我的查询是最终的。 我可以创建具有大部分功能的抽象类和扩

  • 我是Java编程的新手,所以这个问题对这里的许多人来说可能听起来很愚蠢。我试图让自己熟悉JavaFX事件处理机制。 我正在开发一个GUI,我希望按钮在单击它时以及按下Enter键时执行相同的功能。 我能做以下事情吗? 然后将它用于两个按键事件