简体   繁体   English

在 React/JavaScript 中为二维数组赋值

[英]Assign value to 2d array in React/JavaScript

I am working on a React project where i need a multidimensional constant using useState which stores +/- symbols on some condition.我正在研究一个 React 项目,我需要一个使用 useState 的多维常量,它在某些条件下存储 +/- 符号。

const [button, setButton] = useState([["+"]]);

and i have the condition something like:我有这样的条件:


    const handleAddFields = (data_index, index, e) => {
        console.log("aaaaa!!!", data_index)
        console.log("bbbbb!!!",index)
        
        if (button[data_index][index] === "+") {

            const btn = [...button]
            btn[data_index][index] = "-"
            btn[data_index].push(["+"])
            setButton(btn)

            const btnColour = [...btnClass]
            btnColour[index] = "danger"
            btnColour.push("primary")
            setBtnClass(btnColour)

            
        } else {
            const btn = [...button]
            btn.splice(index, 1);
            setButton(btn)

            const btnColour = [...btnClass]
            btnColour.splice(index, 1);
            setBtnClass(btnColour)

            const values  = [...inputFields];
            values.splice(index, 1);
            setInputFields(values);
        }
        
    };

i am getting an error as我收到一个错误

Cannot assign to read only property '0' of string '+'
at
btn[data_index][index] = "-"
this line这条线

The Place where the function handleAddFields is called is a button函数handleAddFields被调用的地方是一个按钮

<Button name="btn" id="button" type="button" color={btnClass[data_index][index]} block onClick={(e) => handleAddFields(data_index, index, e)}>{button[data_index][index]}</Button>

I think React does not allow assigning value to multidimensional array.我认为 React 不允许为多维数组赋值。
What could be the possible solution to this?可能的解决方案是什么?

看起来您的输入是空的,请尝试为其分配一些值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM