Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图将数据绑定到输入字段为';正在映射React中的_Javascript_Arrays_Reactjs_Loops_Object - Fatal编程技术网

Javascript 试图将数据绑定到输入字段为';正在映射React中的

Javascript 试图将数据绑定到输入字段为';正在映射React中的,javascript,arrays,reactjs,loops,object,Javascript,Arrays,Reactjs,Loops,Object,我试图使用onChange函数将我的状态值绑定到输入值 handleChange = event => { this.setState({ [event.target.name]: event.target.value }); }; 但是我的输入字段在映射中,我不知道如何为每次迭代指定输入字段特定的名称和值属性,这样onChange函数就可以工作了 当前代码: state = { row0: "", row1: "", row2

我试图使用onChange函数将我的状态值绑定到输入值

  handleChange = event => {
    this.setState({
      [event.target.name]: event.target.value
    });
  };
但是我的输入字段在映射中,我不知道如何为每次迭代指定输入字段特定的名称和值属性,这样onChange函数就可以工作了

当前代码:

state = {
    row0: "",
    row1: "",
    row2: "",
    row3: "",
    row4: ""
  };

  handleChange = event => {
    this.setState({
      [event.target.name]: event.target.value
    });
  };

  handleSubmit = event => {
    console.log(this.state);
  };

  render() {
    const {
      row,
      editMode,
      index,
      selectedIdx,
      startEditing,
      stopEditing
    } = this.props;
    const rowLen = row.length;

    return (
      <React.Fragment>
        {row.map((eachRow, i) => {
          if (rowLen === i + 1) {
            return (
              <React.Fragment key={i}>
                {editMode === true && index === selectedIdx ? (
                  <TableCell align="right">
                    <Input className="input_key" name={`row${i}`} />
                    <IconButton
                      onClick={this.handleSubmit}
                      className="ml-4"
                      aria-label="Filter list"
                    >
                      <i className="fas fa-check" />
                    </IconButton>
                  </TableCell>
                ) : (
                  <TableCell key={i} align="right">
                    {eachRow}
                    <IconButton
                      onClick={startEditing}
                      className="ml-4"
                      aria-label="Filter list"
                    >
                      <i className="fas fa-pen" />
                    </IconButton>
                  </TableCell>
                )}
              </React.Fragment>
            );
          } else {
            return (
              <React.Fragment key={i}>
                {editMode === true && index === selectedIdx ? (
                  <TableCell>
                    <Input className="input_key" />
                  </TableCell>
                ) : (
                  <TableCell> {eachRow} </TableCell>
                )}
              </React.Fragment>
            );
          }
        })}
      </React.Fragment>
    );
  }
}
我需要弄清楚如何获取[event.target.name]:event.target.value,以便将数据绑定到状态可能有一种不同的方法将值绑定到状态任何东西都会有帮助,谢谢

此外,任何关于改进语法的旁注都将不胜感激

Hi,



Have a look here

https://stackoverflow.com/questions/29280445/reactjs-setstate-with-a-dynamic-key-name


inputChangeHandler: function (event) {
            var stateObject = function () {
                returnObj = {};
                returnObj[this.target.id] = this.target.value;
                return returnObj;
            }.bind(event)();
            this.setState(stateObject);
        }
  const daState = Object.keys(this.state).filter(state => {
        return state === `row${i}`;
      }); 
Hi,



Have a look here

https://stackoverflow.com/questions/29280445/reactjs-setstate-with-a-dynamic-key-name


inputChangeHandler: function (event) {
            var stateObject = function () {
                returnObj = {};
                returnObj[this.target.id] = this.target.value;
                return returnObj;
            }.bind(event)();
            this.setState(stateObject);
        }