为什么textarea显示旧数据

时间:2018-06-21 15:17:37

标签: reactjs class

在我的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 />可能有两个不同的值吗?

1 个答案:

答案 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)} />