gpt4 book ai didi

javascript - React - 提交后更新输入值

转载 作者:行者123 更新时间:2023-11-30 20:35:58 25 4
gpt4 key购买 nike

我正在尝试制作一个用户可以编辑提交值的功能。所以要完全清楚:

  1. 你会输入一些文字
  2. 点击提交,该值将被推送到一个数组中
  3. 您将能够在 dom 上看到您的值(value)
  4. 如果您犯了错误,您可以点击该输入并更改值,同时更新已推送数组中该值的状态。
  5. 单击按钮时,您将更新状态并获得新编辑的值。

我卡在更改数组中推送项的值状态的部分。

例如:

如果我单击“Bob”字段,对其进行编辑并单击提交,无论我将其更改为什么值,都会将数组中最初的状态更改为新值。

这是我目前所拥有的:

import React, { Component } from 'react'

export default class App extends Component {
constructor(props) {
super(props)

this.state = {
notes: ['hello', 'bob'],
val: ''
}
}

submit = () => {
const { notes, val } = this.state

notes.push(val)
this.setState({notes})
}

handleEdit = e => {
console.log(e)
}

render() {
return (
<div>
<input
type="text"
onChange={e => this.setState({val: e.target.value})}
/>

<button onClick={this.submit}>Submit</button>

{this.state.notes.map(item => {
return (
<form onSubmit={e => e.preventDefault()}>
<input
type="text"
defaultValue={item}
onChange={e => this.setState({val: e.target.value})}
/>
<button onClick={() => this.handleEdit(item)}>Submit
Change</button>
</form>
)
})}
</div>
)
}
}

最佳答案

尝试这种事情:

handleEdit = (item) => {
const notes = this.state.notes.slice();
const index = notes.indexOf(item);
notes[index] = this.state.val;
this.setState({
notes
})
}

关于javascript - React - 提交后更新输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49833746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com