Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 如何使用reactjs使用相同的输入框存储不同的值?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何使用reactjs使用相同的输入框存储不同的值?

Javascript 如何使用reactjs使用相同的输入框存储不同的值?,javascript,reactjs,Javascript,Reactjs,我试图使用相同的输入框输入不同的值,因此每次输入值时,我都应该存储值并向用户显示。this.addPrice('input1',e.target.value)}/> 这是放置在模式内的,因此每当模式弹出窗口打开时,use将输入值。为了使用同一输入框向单个数组添加值,用户很可能需要执行辅助操作(如按下按钮),以指示何时存储当前值 state = { currentValue: '', prices: [], } onChange = (event) => { this.setS

我试图使用相同的输入框输入不同的值,因此每次输入值时,我都应该存储值并向用户显示。
this.addPrice('input1',e.target.value)}/>

这是放置在模式内的,因此每当模式弹出窗口打开时,use将输入值

。为了使用同一输入框向单个数组添加值,用户很可能需要执行辅助操作(如按下按钮),以指示何时存储当前值

state = {
  currentValue: '',
  prices: [],
}

onChange = (event) => {
  this.setState({ currentValue: event.target.value })
}

addPrice = () => {
  this.setState(prevState => ({
    prices: [...prevState.prices, this.state.currentValue]
  }))
}

...

<input type='text' onChange={this.onChange} value={this.state.currentValue} />
<button onClick={this.addPrice}>Add Price</button>

你能添加一些代码使问题更清楚吗?现在它说你使用的是同一个输入框。但是没有提到显示您在哪里使用它的代码。用户是否按下按钮(或执行另一个操作)来存储该值?当前,
onChange
中的
this.addPrice
将为添加到inputaddPrice=(输入,值)=>{this.setState({amount:value})的每个字符触发如何存储在同一数组中输入的不同值,或者如何区分这些值再次打开输入框时,将显示以前的值,因为我们使用的是value={this.state.currentValue}您可以添加一个方法,在打开或关闭输入框时清除
currentValue
。说得好,还有一个问题,在存储到类似[key:'',value:''的数组中时,我可以为该值设置任何键吗?您可以在数组中存储您想要的任何内容,但听起来像是要存储对象。我将更新答案以解决这个问题。
addPrice = () => {
  this.setState(prevState => ({
    prices: [...prevState.prices, {amount: this.state.currentValue}]
  }))
}