微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

随机化结果 onload React

如何解决随机化结果 onload React

我试图随机化每次刷新页面时从 API 收到的结果。我对设置 onload 的方式有点困惑。

这是我的代码

  handleRandom = (e) => {
    this.getMarvelResponse(null,null,e);
  };
  componentDidMount() {
    const random = Math.floor(Math.random() * 1473);
    this.getMarvelResponse(null,this.state.offset);
    onload = () => {this.handleRandom(random)}
  }

  getMarvelResponse = (id,name,offset) => {
    getCharacters({
      id: id,name: name,offset: offset,}).then(({ characters }) => {
      this.setState(
        {
          characters: characters.filter(
            (chr) => !chr.thumbnail.path.match(imageFound)
          ),selectedCard: null,},() => {
          console.log(this.state.characters);
        }
      );
    });

解决方法

您将不得不创建一个函数来对它们进行洗牌。 https://stackoverflow.com/a/12646864/11765805 我从这条评论中得到了这个

function shuffleArray(array) {
    for (var i = array.length - 1; i > 0; i--) {
        var j = Math.floor(Math.random() * (i + 1));
        var temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}

你会想在这里调用它

  getMarvelResponse = (id,name,offset) => {
    getCharacters({
      id: id,name: name,offset: offset,}).then(({ characters }) => {
/////////Call Here
      this.setState(
        {
          characters: characters.filter(
            (chr) => !chr.thumbnail.path.match(imageFound)
          ),selectedCard: null,},() => {
          console.log(this.state.characters);
        }
      );
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。