试图改组textFields

时间:2018-03-16 05:54:56

标签: reactjs

所以我将它们放入一个数组并给它们shuffle函数。问题是每次我在文本中键入内容时,状态都会更新,从而呈现组件。因此,对于我输入的每个字母,textFields随机播放。

The code that is giving me the problem

1 个答案:

答案 0 :(得分:0)

这是因为当状态发生变化时,会调用渲染函数并且你的 Aa1Array 会因渲染内部而被洗牌。您可以将 Aa1Array 移出渲染函数并将其放入组件构造函数中,如下所示

class MyComponent extends Component {
 constructor(props) {
    super(props);
    this.state = {};
    this.Aa1Array = shuffle([
        <TextField/>,
        <TextField/>,
    ], {copy: true});
 }

 render() {
    let textFields = this.Aa1Array.map(Aa1 => Aa1);
    return (<div>{textFields}</div>);
 }
}

在使用摆脱 undefined 之前,请记得在构造函数中初始化 this.state = {};

希望得到这个帮助。