在我的Javascript React代码中,我遇到了一个奇怪的问题。我编写了代码来显示和编辑带有2维数组的全局javascript对象的值。一切正常,除非当我尝试显示生成的全局数据时,我只能在文本区域中获取未编辑的旧数据。这是我的代码:
item
应用程序代码使用<script type="text/babel">
class DataBox extends React.Component {
render() {
return(
<div>
<hr />
<div>nr of samples: {_samples.Samples.length}, data object:</div>
<textarea rows="4" cols="50">{JSON.stringify(_samples.Samples, null, 4)}</textarea>
</div>
)
}
}//end class DataBox
</script>
类。全局数据对象<DataBox />
的数组_samples
包含4个主要对象,它们显示在html页面上。 Samples
显示“样本数量:4”。
当我使用该应用程序删除第一个主要项目时,应用程序中的<DataBox />
调用也会导致子setstate
的呈现。这样可以正确显示:“样本数量:3”,但是<DataBox />
显示的是删除前的4个样本的全局数据。
在这个React类的两行中,<textarea />
可能有两个不同的值吗?
答案 0 :(得分:1)
在React中,<textarea>
使用value属性代替其文本的子元素。
https://reactjs.org/docs/forms.html#the-textarea-tag
像这样尝试:
<textarea rows="4" cols="50" value={JSON.stringify(_samples.Samples, null, 4)} />