Arrays 将索引中的数组状态设置为字符串并进行更新
我试图将状态设置为数组的特定索引Arrays 将索引中的数组状态设置为字符串并进行更新,arrays,reactjs,ecmascript-6,Arrays,Reactjs,Ecmascript 6,我试图将状态设置为数组的特定索引 let updatedArray = [...this.state.AnswerState]; updatedArray[name] = value; this.setState({ AnswerState: [updatedArray] }, () => { console.log(this.state.AnswerState); }); 我有 this.state.AnswerState
let updatedArray = [...this.state.AnswerState];
updatedArray[name] = value;
this.setState({
AnswerState: [updatedArray]
}, () => {
console.log(this.state.AnswerState);
});
我有
this.state.AnswerState = [
0: {Name: ""}
1: {Number: ""}
]
它是动态生成的。
我应该如何更新状态?
我以嵌套循环的形式获得输出:
0: Array(1)
0: {Name: ""}
Name: "s"
Name: "ss"
等等
我希望我的状态在接受输入时更新,如下所示:
AnswerState = [
Name: aaa, Number: bbbb
]
将状态设置为数组的特定索引 在这里,我将元素放在更新数组的索引1处
import React from "react";
import ReactDOM from "react-dom";
class App extends React.Component {
state = {
answerState: [{ name: "something1" }, { name: "something2" }]
};
handleSubmit = () => {
const index = 1;
let updatedArray = new Array(this.state.answerState[index]);
this.setState({
answerState: updatedArray
}, () => {
console.log(this.state.answerState)
})
};
render() {
return (
<>
<button onClick={this.handleSubmit}>Click Me</button>
<br />
{this.state.answerState[0].name}
</>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
从“React”导入React;
从“react dom”导入react dom;
类应用程序扩展了React.Component{
状态={
答复状态:[{name:“something1”},{name:“something2”}]
};
handleSubmit=()=>{
常数指数=1;
让updateArray=新数组(this.state.answerState[index]);
这是我的国家({
回答:UpdateArray
}, () => {
console.log(this.state.answerState)
})
};
render(){
返回(
点击我
{this.state.answerState[0].name}
);
}
}
const rootElement=document.getElementById(“根”);
render(,rootElement);
希望对你有帮助 你能添加codesandbox示例吗?我觉得你的回答有点奇怪。您可能希望首先检查该状态,或者确切地告诉我您正试图对该状态执行什么操作,以便我可以提供帮助。您的
应答状态
似乎是对象
,而不是数组
。它第一次只接受一个键值对,然后未定义的键值对进入状态,因为下次数组中只有一个元素索引1中没有元素。所以未定义,这个例子是为了说明如何通过索引更新状态。@tarzn chugh,但我希望索引是字符串。数组中可以有多个元素。数组中的索引为数字,若要将索引作为字符串,则必须使用具有键值对的对象。有关更多信息,请参阅链接。