gpt4 book ai didi

javascript - 在特定索引处更改 React 状态数组

转载 作者:行者123 更新时间:2023-11-29 21:00:39 25 4
gpt4 key购买 nike

正如标题所暗示的,我正试图将我的 state object 中的一个数组作为目标但如果你尝试过,你会猜到的。这并不像听起来那么简单。我在这里查看了几个问题(React: How do I update state.item[1] on setState? (with JSFiddle)ReactJS - setState of Object key in Array),但都没有解决我的问题。

我需要的是针对 noteData 中的特定索引数组,并根据用户在 <TextArea /> 中键入的内容更新它成分。不确定为什么,但我的 noteData array 只是作为带有空字符串的数组读取 noteData = [''] .

如果需要更深入的了解,可以前往https://stackblitz.com/edit/note-taking并 fork 页面并自己编辑。文件结构至少可以说是愚蠢的。我开始使用 redux 并在中途决定不使用它。

TextArea 的状态和函数

class NoteList extends Component {
constructor(props) {
super(props);
this.state = {
inputValue: '',
noteName: [],
noteData: [],
selectedNote: []
}
}

handleInputValue(e) {
this.setState({
inputValue: e.target.value
});
}

addNoteFunc(e) {
this.setState({
noteName: [ ...this.state.noteName, e.target.value ],
noteData: [ ...this.state.noteData, '' ]
});
}

// everytime the user types, change the value of noteData
handleNoteData(e, index = this.state.selectedNote[0]) {
const copyNoteData = Object.assign({}, this.state);
copyNoteData.noteData[index] = e.target.value;

this.setState(copyNoteData);
}

handleSelectedNote(index) {
this.setState({
selectedNote: [ index ]
});
}

<textarea
value={this.state.noteData[this.state.selectedNote[0]]}
handleNoteData={(e, index) => this.handleNoteData(e, index)}
/>

实际的 TextArea 组件

import React from 'react';

const TextArea = props => {
return (
<div className='textarea'>
<textarea
value={props.value}
onKeyDown={props.handleNoteData}
/>
</div>
);
}

export default TextArea;

最佳答案

你的代码有错误,因为 textarea 不是正确的组件,它应该是 TextArea 而不是 textarea,它是一个 html 元素,你首先必须先将它导入 notelist.js,这就是为什么 onKeyDown Prop 是未设置。

<TextArea 
value={this.state.noteData[this.state.selectedNote[0]]}
handleNoteData={(e, index) => this.handleNoteData(e, index = this.state.selectedNote[0])}
/>

此外,您还必须将 handleNoteData 添加到 onChange 事件,否则在 onKeyDown 事件中,texarea 值将永远不会更改,因为您每次都将其重置为 e.target.value。

试试这个: https://stackblitz.com/edit/note-taking-y5hwsb?file=containers/notelist.js

关于javascript - 在特定索引处更改 React 状态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652274/

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