javascript - setState react 生成数组结果

标签 javascript reactjs ecmascript-6

如何在 onChange 事件上将索引插入数组位置?假设用户可以在任何输入上键入,并且我可以获取数组中的值,该位​​置必须与输入的索引匹配

onChange = () => {
    //so that I get, console.log(this.state.inputGroup)
    //expected ['value1', 'value2', 'value3']
}

render() {
    return(
        <div>
            <input onChange={e => this.onChange(1, index)} type="text"/>
            <input onChange={e => this.onChange(2, index)} type="text"/>
            <input onChange={e => this.onChange(3, index)} type="text"/>
        </div>
    )
}

最佳答案

您需要将输入中的值传递给 onChange方法。 所以你通过了e.target.value 。固定索引是第一个参数,这就是指向数组索引的方式。

<input onChange={(e) => { this.onChange(1, e.target.value) }} type="text"/>

以及onChange方法

onChange = (inputIndex, textValue) => {
   //I assume that array of size equal to inputs quantity already is 
   //declared with ex. empty strings (you can initialize that in 
   //component constructor)

   const inputGroup = this.state.inputGroup
   inputGroup[inputIndex] = textValue

   this.setState({ inputGroup })
}

顺便说一句。您可能希望以 0 开始输入索引:) 否则数组的 0 元素将永远不会被任何输入使用。

关于javascript - setState react 生成数组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52421500/

相关文章:

javascript - 在 ES6 类中添加上下文/私有(private)变量(不引用 this。)

javascript - 没有大括号的单行箭头功能 - 不能有分号吗?

javascript - 在 JS 上公开子模块(import * from ...)是不好的做法吗?

javascript - Python 到 JavaScript

javascript - 根据名称动态调用函数

reactjs - React-renderSubtreeIntoContainer : Use case example

javascript - 透明可滑动抽屉 Material -UI

javascript - webpack 4 - HMR 不刷新 html 和 scss (ReactJS)

javascript - 有什么方法可以读取在 JS 中以编程方式打印到控制台的内容吗? (供测试用)

reactjs - 登录 react 路由器后如何重定向到上一页?