从状态渲染随机数组元素(React Native)

时间:2020-01-17 01:12:20

标签: reactjs typescript react-native

我正在尝试从状态渲染随机数组项,以便(例如-[0]在重新加载时可能更改为[2]。]

这是我到目前为止尝试过的,请提供任何提示或想法吗?

这是我的状态:

     state = {
      randomItem: ['one', 'two', 'three', 'four'],
    },
    selected: null,
    clicked: false,
  };

这是我的handleClick函数,它将随机化从数组中获取的项目

  handleClick = () => {
    this.setState({
      clicked: true,
      selected: this.state.randomItem.selected[
        Math.floor(Math.random() * this.state.selected.length)
      ],
    });
  };

这是我试图退还的方式

         <View>
            <TouchableOpacity onPress={this.handleClick}>
              <Text>{this.state.clicked && this.state.selected}</Text>
            </TouchableOpacity>
          </View>

1 个答案:

答案 0 :(得分:3)

我相信您是要在handleClick()中说randomItem而不是randomStatus

尝试像这样更改handleClick():

    handleClick = () => {
    this.setState(prev => ({
      ...prev,
      clicked: true,
      selected:
        prev.randomItem[Math.floor(Math.random() * prev.randomItem.length) + 0]
    }));
  };

此外,我认为您所在的州也有错字。应该是:

    state = {
    randomItem: ["one", "two", "three", "four"],
    selected: null,
    clicked: false
  };