Reactjs 正在尝试洗牌文本字段

Reactjs 正在尝试洗牌文本字段,reactjs,Reactjs,所以我把它们放到一个数组中,给它们一个洗牌函数。问题是,每次我在文本中键入内容时,呈现组件的状态都会更新。因此,对于我键入的每个字母,textFields都会洗牌 这是因为当状态发生更改时,会调用渲染函数,并且会由于渲染中的状态而对AA1阵列进行洗牌。您可以将Aa1Array移出渲染函数,并将其放入组件构造函数中,如下所示 class MyComponent extends Component { constructor(props) { super(props); this.

所以我把它们放到一个数组中,给它们一个洗牌函数。问题是,每次我在文本中键入内容时,呈现组件的状态都会更新。因此,对于我键入的每个字母,textFields都会洗牌


这是因为当状态发生更改时,会调用渲染函数,并且会由于渲染中的状态而对AA1阵列进行洗牌。您可以将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>);
 }
}
类MyComponent扩展组件{
建造师(道具){
超级(道具);
this.state={};
this.Aa1Array=shuffle([
,
,
],{copy:true});
}
render(){
让textFields=this.Aa1Array.map(Aa1=>Aa1);
返回({textFields});
}
}
记住初始化this.state={};在使用之前先在构造函数中删除未定义的


希望有帮助。

您希望他们什么时候洗牌?将代码显示为文本。Plz Plz Plz帮助:(当用户刷新页面时,我想洗牌。谢谢!但唯一的问题是,当我单击它时,提示文本没有消失。你知道如何解决这个问题吗?我不确定你正在使用哪个TextField库。你能附上你的整个源代码文件吗?