reactjs - React useState 导致无限循环

标签 reactjs

import {Navbar, NavbarBrand} from 'reactstrap';
// import Menu from './components/MenuComponent';
import {DISHES} from "./shared/dishes";

export default function App() {

    const [state, updateState] = useState({
        dishes: DISHES
    });
    updateState({...state, name: 'something'});
    console.log(state);
    return (
        <div>
            <Navbar dark color="primary">
                <div className="container">
                    <NavbarBrand href="/">Ristorante Con Fusion</NavbarBrand>
                </div>
            </Navbar>
            {/*<Menu dishes={state.dishes}/>*/}
        </div>
    );
}

这会导致无限循环。在评论 updateState 行后它起作用了。通过作品,我的意思是它不会进入无限循环。有人可以告诉我我做错了什么吗?

下面附上截图-

enter image description here

最佳答案

问题在这里 updateState({...state, name: 'something'}) ,你在渲染之前更新状态并且继续更新状态,这将重新-渲染,它继续。使用 useEffect 更新状态。

useEffect(() => {
  updateState({...state, name: 'something'});
}, [])

关于reactjs - React useState 导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65996849/

相关文章:

reactjs - 为什么 React.js 没有 stateTypes?

javascript - 为什么react-bootstrap不向我的网格布局添加样式

reactjs - 由于 docker build 中的 TypeScript 错误,npm run build 失败

reactjs - 可以在单个 TextInput 中保存多个值吗?

javascript - 悬停时更改组件的背景颜色

javascript - React 组件中的 render() 函数的作用是什么?

javascript - 如何从 devExtreme 将自定义 Prop 发送到我的自定义搜索面板

reactjs - 带有反应 Spring 动画的 react 三纤维

javascript - 返回函数的 JS 类

javascript - 如何使用同一对象的另一个键的值更改对象的键值?