首页 > 解决方案 > 如何使数组的每个池只能分配一次

问题描述

嗨,我是 React 的初学者。我正在开发我的任务,我需要声明一个包含空值的数组:

this.state = {
  position: [null,null,null,null,null,null,null,null]
};

之后我为这个数组分配了一些值,但我的应用程序确实要求每个池只能更改一次。问候

标签: javascriptarraysreactjsnull

解决方案


如果您将任务更改为position只能更改null为另一个值而不是null再次更改,那么它变得容易

  setPool(i, pool) {
    if(pool === null) return; // prevent that any position gets set back to `null`

    this.setState(({ position }) => {
      if(position[i] !== null) return; // prevent that a pool gets set twice
      return { position: position.map((v, i2) => i === i2 ? pool : v) };
    });
 }

推荐阅读