javascript - 在一个接受数组并返回随机值的简单函数中 react js错误

标签 javascript arrays reactjs

我遇到了一个我无法理解的错误,它是关于一个接受数组并从中返回随机值的函数。我上次用了同样的功能,没有出现这个错误

helpers.js

function choice(arr) {
  let randomIndex = Math.floor(Math.random() * 3);
  return arr[randomIndex];
}

export { choice };

box.js

import React, { Component } from 'react';
import {choice} from './helpers';
 import './Box.css'

class Box extends Component {
    static defaultProps = {
        allColors: ["purple", "magenta", "violet", "pink"]
    };
    constructor(props){
        super(props);
        this.state = {color: choice(this.props.allcolors)};
        this.handleClick = this.handleClick.bind(this);
    }
    handleClick(){

    }
    render(){
        return(
            <div className="Box" style={{backgroundColor: this.state.color}
            } onClick={this.handleClick}>

            </div>
        );
    }
}

export default Box;

这里是错误 enter image description here

最佳答案

你的代码有两个错误:

  1. this.props.allcolorsundefined,因为您已经将 Prop allColors 设置为大写的“C”
  2. 这在您的特定情况下可能不是问题,但一般来说,函数 choice 不会给您想要的结果。它现在仅适用于长度为 3 的数组。要解决此问题,您可以将 3 更改为 arr.length,如下所示:
function choice(arr) {
  let randomIndex = Math.floor(Math.random() * arr.length);
  return arr[randomIndex];
}

关于javascript - 在一个接受数组并返回随机值的简单函数中 react js错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337254/

相关文章:

android - 在骰子游戏中比较数组

javascript - 有什么方法可以将部分使用 Javascript 设计的网页转换为纯 HTML 和 CSS?

javascript - 等待最后指令有用吗

java - 计算数组中没有最高值和最低值的平均值

javascript - ml5js 损失和信心 NaN

Java共享对象数组初始化错误

reactjs - 在 React 中,页面加载事件“获取数据”不起作用

javascript - 如何获取在 reactjs 中将 height css 属性设置为 auto 的元素的确切高度?

javascript - 谷歌地图 api place_changed 事件未触发

javascript - 需要根据外部下拉列表中的列名称单独获取 ui 网格列数据