反应挂钩useEffect抛出const变量赋值错误

时间:2019-09-05 17:41:39

标签: reactjs react-hooks use-effect

我正在处理某些代码,但仍卡在此错误中。我在其他项目中从未见过它,因此我不确定为什么会在这里。我正在使用useEffect挂钩,当用户从下拉菜单中选择一个选项时,我想对其进行更新。发生的是,当用户选择一个选项时,出现以下错误TypeError: Assignment to constant variable.。我了解这是在说我正在尝试更新无法发生的常数,但是我不明白为什么。 不幸的是,

我无法确定如何正确呈现我的代码,但是接下来的两行是我遇到问题的代码行。然后再加上我正在处理的完整代码。

const [TitleId, setTitleId] = useState(0); const TitleSelect = event =>{ console.log(event.target.value); setTitleId=(32); };

import React, {useState,useEffect} from 'react';
// import '../app.css';

const Header = props=> {
const [TitleList, setTitleList] = useState([]);
const [TitleId, setTitleId] = useState(0);

useEffect(()=>{
    console.log('first start');
    setTitleList(
        props.data.map((title,index)=>({
            title: title.title,
            id: index
        }))
    )
},[])
const TitleSelect = event =>{
    console.log(event.target.value);
    setTitleId=(32);
};

let content = (
    <select
    onChange={TitleSelect}>
    {TitleList.map(title=>(
        <option key={title.id} value={title.id}>
                {title.title}
                </option>
    ))}

    </select>)  
return(content);
}
export default Header;

任何建议或意见都将不胜感激。

1 个答案:

答案 0 :(得分:4)

setTitleId=(32);导致了错误,而您原意是setTitleId(32);

通过执行setTitleId=(32),您试图将一个值分配给const声明,该声明中包含对useState返回的函数指针的引用,因此会出现Assignment to const variable错误