我试图根据用户单击的元素将数据添加到各种索引中的数组中,但数组的最后一个元素会不断重新呈现。
我相信问题始于在单独的组件中呈现的数组元素并返回到包含状态的主组件。
这是基本上封装问题的示例代码。
状态(正确):
实际呈现的内容:
在你的 Letter 组件中,你在类实例上设置了一个“字母”属性, ( this.letter
) 而不是使用 React 的内置方法来管理道具和状态 ( this.props.letter
)
因为您在 的 render 方法中使用数组索引作为键,所以app.js
在重新渲染列表时,React 会将现有组件保留在该索引处。因为您的 'letter' 属性在该组件上没有改变,您将获得相同的文本。
简而言之,使用 props 和 state 来存储信息。避免this.{variableName}
在组件中进行设置,除非您要存储组件(或其子组件)渲染不需要的信息。
在您的情况下,您需要将字母组件的渲染方法从
render() {
return this.letter.text
}
至
render() {
return this.props.letter.text
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句