我有一个练习,但我不知道该怎么做。

用5个文本框构建一个控件,使所有文本框中的输入相关联。在一个框中更改输入将更改其余框中的输入。

class App extends Component {
 render() {
    return (
      <div>
        <MultiInput />
      </div>
    );
  }
}

function SameInput(props) {
  return <input type="text" name="sameInput"/>
}

class MultiInput extends React.Component {
  constructor(props) {
    super(props);
    this.state = { value: "ho" };
  }

  onChange = (e) => {
    this.setState({ value: e.target.value });
  }

  render() {
    return <div>
      <SameInput value={this.state.value} onChange={this.onChange}></SameInput><br />
      <SameInput value={this.state.value} onChange={this.onChange}></SameInput><br />
      <SameInput value={this.state.value} onChange={this.onChange}></SameInput><br />
    </div>
  }
}

export default App;

最佳答案

您正在将onChange事件处理函数和值传递给SameInput功能组件,但实际上并未在输入元素的SameInput函数的输入文本字段中处理它们。

尝试以下更改,它将起作用

 function SameInput(props) {
     return <input type="text" name="sameInput" onChange={props.onChange} value={props.value}/>
  }

10-08 01:47