Reactjs 状态更新时Textarea未更新

Reactjs 状态更新时Textarea未更新,reactjs,Reactjs,我试图得到一个功能,其中一个下拉选项可以选择和文本区域匹配它的文本到该选项 因此,如果我选择选项1,然后键入,选择选项2,它是明确的,所以我键入其他内容。现在,如果我在选项1和2之间切换,我可以看到我为每个选项键入的文本 我已将textarea的值绑定到对象属性data[selected],但当此状态值更新时,文本区域不会更新。我做错了什么 这是我的密码: (代码沙盒:) import React,{useState,useffect}来自“React”; 导入“/styles.css”; 导出

我试图得到一个功能,其中一个下拉选项可以选择和文本区域匹配它的文本到该选项

因此,如果我选择选项1,然后键入,选择选项2,它是明确的,所以我键入其他内容。现在,如果我在选项1和2之间切换,我可以看到我为每个选项键入的文本

我已将textarea的值绑定到对象属性
data[selected]
,但当此状态值更新时,文本区域不会更新。我做错了什么

这是我的密码:

(代码沙盒:)

import React,{useState,useffect}来自“React”;
导入“/styles.css”;
导出默认函数App(){
常量parentData=[“一”、“二”、“三”];
const[selected,setSelected]=useState(“两个”);
const[data,setData]=useState(
parentData.reduce((a,b)=>((a[b]=”),a),{})
);
功能手柄选择(事件){
setSelected(事件、目标、值);
}
函数handleTextChange(事件){
设val=event.target.value;
设置数据((上一个)=>{
上一个[所选]=val;
返回上一个;
});
console.log(数据[选定]);
console.log(选中);
控制台日志(val);
}
返回(
所选内容为:{Selected}
{parentData.map((val,i)=>{
返回(
{val}
);
})}


{console.log(“父呈现”)} ); }
handleTextChange
中,您正在变异对象。尝试执行以下操作:

setData((prev) => {
      return {
        ...prev,
        [selected]: val
      };
    });

您需要使用spread运算符,这样,您将添加新值,而不会改变状态

function handleTextChange(event) {
    let val = event.target.value;
    setData(data => ...data, val)

}

Yash Joshi的答案是完美的,除了我的答案是课堂形式。所以我的

<textarea value={this.state.myText} onChange={this.changeMyText} />
相反,解决办法是将此更改为

someOtherFunction(){
     let newtext = this.state.myText + "abcde";
     this.setState({
          myText: newtext;
     });
}
但超现实的是,这种解决方案不仅仅是常规的
所必需的

someOtherFunction(){
     let newtext = this.state.myText + "abcde";
     this.setState({
          myText: newtext;
     });
}