Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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_Reactjs - Fatal编程技术网

Javascript 如何在react中获取输入字段值?

Javascript 如何在react中获取输入字段值?,javascript,reactjs,Javascript,Reactjs,我正在动态添加输入字段。我想获取它的值。您能告诉我如何获取它的值吗 这是我的密码 返回( {state.inputs.map(输入=>( ))} 添加 ); 我想得到它的价值如何 任何更新我都会为每个输入输入一个名称,并传递一个onChange函数。然后在onChange函数中,我将根据名称设置状态 作用 onChange = e => { this.setState({[e.target.name] : e.target.value}); } 渲染 render(){ retu

我正在动态添加
输入字段
。我想获取它的值。您能告诉我如何获取它的值吗

这是我的密码

返回(
{state.inputs.map(输入=>(
))}
添加
);
我想得到它的价值如何


任何更新

我都会为每个输入输入一个
名称
,并传递一个onChange函数。然后在onChange函数中,我将根据名称设置状态

作用

onChange = e => {
  this.setState({[e.target.name] : e.target.value});
}
渲染

render(){
return (
    <div className="App">
      <Form>
        {state.inputs.map(input => (
          <KeyValue name={input.name} value={this.state[input.name]} onChange={this.onChange } />
        ))}
        <Button type="button" primary onClick={appendInput}>
          Add
        </Button>
      </Form>
    </div>
  );

}
render(){
返回(
{state.inputs.map(输入=>(
))}
添加
);
}
这是我的解决方案

将函数传递给KeyValue组件,以便在输入更改时获取值

  const handleChangeKeyValues = name => value => {
    setState(prevState => {
      const newValues = {
        ...prevState.values,
        [name]: value
      };

      return {
        ...prevState,
        values: newValues
      };
    });
  };
并从道具接收值,并处理KeyValue组件中的输入

const KeyValue = ({ onChange, values = { firstName: "", lastName: "" } }) => {
  const handleChangeInput = event => {
    const { value, name } = event.target;

    const newFormValue = { ...values, [name]: value };

    onChange(newFormValue);
  };

  return (
    <Form.Group widths="equal">
      <Form.Input
        value={values.firstName}
        fluid
        label="Key"
        name="firstName"
        placeholder="First name"
        onChange={handleChangeInput}
      />
      <Form.Input
        value={values.lastName}
        fluid
        label="Value"
        name="lastName"
        placeholder="Last name"
        onChange={handleChangeInput}
      />
      <Icon style={{ top: 30, position: "relative", left: 10 }} name="delete" />
      <Form.Input
        style={{ display: "none" }}
        fluid
        label=""
        placeholder="Last name"
      />
    </Form.Group>
  );
};
constkeyvalue=({onChange,values={firstName:,lastName:}})=>{
const handleChangeInput=事件=>{
const{value,name}=event.target;
const newFormValue={…values,[名称]:value};
onChange(newFormValue);
};
返回(
);
};

为每个输入以唯一名称存储状态中的值

,但它是动态生成的
const KeyValue = ({ onChange, values = { firstName: "", lastName: "" } }) => {
  const handleChangeInput = event => {
    const { value, name } = event.target;

    const newFormValue = { ...values, [name]: value };

    onChange(newFormValue);
  };

  return (
    <Form.Group widths="equal">
      <Form.Input
        value={values.firstName}
        fluid
        label="Key"
        name="firstName"
        placeholder="First name"
        onChange={handleChangeInput}
      />
      <Form.Input
        value={values.lastName}
        fluid
        label="Value"
        name="lastName"
        placeholder="Last name"
        onChange={handleChangeInput}
      />
      <Icon style={{ top: 30, position: "relative", left: 10 }} name="delete" />
      <Form.Input
        style={{ display: "none" }}
        fluid
        label=""
        placeholder="Last name"
      />
    </Form.Group>
  );
};