我正在尝试将更新的testvar传递给ComponentX
let testvar = ["Test", "Test2"];
testvar.map(test => {
test = test + "Edited";
console.log(test);//updates here
return test;
});
console.log(testvar);//doesn't retrieve updated value
<ComponentX values={testvar}>
我知道控制台不是异步的,但是我还将这个更新的值传递给组件, 但是原版通过了。 我试图将此更新包装为异步功能,如下所示,
let testvar = ["Test", "Test2"];
const updateFunc = async()=>{
await testvar.map(test => {
test = test + "Edited";
console.log(test);//updates here
return test;
});
}
const updatedvalues = updateFunc();
<ComponentX values={updatedvalues}>
我收到错误,因为诺言String []在ComponentX上不可接受。 任何潜在客户都会有所帮助。谢谢!
答案 0 :(得分:0)
您将字符串视为可变的,但实际上没有。在这种情况下,您需要按索引
更新数组let testvar = ["Test", "Test2"];
testvar.forEach((test,i) => {
testvar[i] = test + "Edited";
console.log(test);//updates here
});
console.log(testvar);
或创建一个新的
testvar = testvar.map(test => {
test = test + "Edited";
console.log(test);//updates here
return test;
});