reactjs - 如何在 React 中创建带有 for 循环的选择框?

标签 reactjs redux

我是 React 和 Redux 新手,我想创建 Chess Queens 的 React/Redux 实现。我想创建常量,例如 MAX_BOARD_SIZE = 50,并创建一个包含 1 到 MAX_BOARD_SIZE 之间所有数字的选择框。当更改板尺寸时,板尺寸将自动更改。但我无法在 SelectBoardSize 渲染函数中创建 for 循环。这是我的代码:

import React from 'react';

class SelectBoardSize extends React.Component {
    render() {
        return (
            <select className="select-board-size">
                for (let i = 1; i <= 50; i++) {
                   <option value="{i}">{i}</option>
                }
            </select>
        );
    }
}

export default SelectBoardSize;

而且我也不知道在哪里定义常量以及如何在这个类中使用这个值?常量应该在另一个文件中定义,例如 constants.jsx 或此类文件之外的某个位置。

最佳答案

您不能在 jsx 代码中使用任何您想要的 JS 代码(例如 for 循环)。试试这个

P.S 关于常量:由您决定在哪里保存常量。我更喜欢将它们保存在单独的文件中。但如果它依赖于组件(而不是依赖于应用程序)常量,您可以在组件文件中定义它

import React from 'react';

class SelectBoardSize extends React.Component {
    buildOptions() {
        var arr = [];

        for (let i = 1; i <= 10; i++) {
            arr.push(<option key={i} value="{i}">{i}</option>)
        }

        return arr; 
    }

    render() {
        return (
            <select className="select-board-size">
                {this.buildOptions()}
            </select>
        );
    }
}

export default SelectBoardSize;

关于reactjs - 如何在 React 中创建带有 for 循环的选择框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42972027/

相关文章:

html - 如何水平对齐子组件以占据容器宽度的一定百分比?

javascript - 无法在带有 Material-ui 的 radioGroup 中触发 onChange

javascript - npm install 类名在我的 li 标签中不起作用

javascript - 类型错误 : Cannot call a class as a function (React/Redux)

javascript - Css 类名不适用于 React 组件

javascript - 我可以在 webpack 中构建 sass/less/css 而不需要在我的 JS 中使用它们吗?

javascript - 仅仅为了测试而创建不同的商店是错误的吗?

reactjs - 如何将 react-redux 'useSelector' 与附加变量一起使用?

javascript - react-router-redux 重定向到绝对 url

javascript - 在 React 中设置状态的多个 Fe​​tch 请求