javascript - 如何将初始状态设置为与钩子(Hook) react 的 Prop ?

标签 javascript reactjs

我想使用钩子(Hook)将状态设置为 react 中的 Prop ,但出现错误: 重新渲染次数过多。 React 限制渲染数量以防止无限循环。 ▶ 34 个堆栈帧被折叠。

我的代码: 第一个组件:

const List = () => {
    const [items, setItems] = useState([{}])
    useEffect(() => {
        const fetchData = async () => {
            const data = await fetch(
                'http://localhost:5000/api',
            );
            const result = await data.json();
            setItems(result);
        };
        fetchData();
    }, []);
   return (
          <ActualList items={items}/>
    )
}

第二个组件:

const ActualList = props => {
    const [items, setItems] = useState([{}])
    setItems(props.items)
    }
...

最佳答案

您在每次渲染中调用 setItem。每次更改状态值时,您的组件都会重新渲染,这将导致另一次状态更改、另一次重新渲染......

您应该有条件地调用 setItems

关于javascript - 如何将初始状态设置为与钩子(Hook) react 的 Prop ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56224404/

相关文章:

javascript - 手动触发的 JavaScript 事件不会针对 iFrame 上下文中的元素传播

javascript - 您可以像在 Facebook 和 Twitter 上那样将 Google+ 分享链接到 Google+ 帐户吗?

reactjs - Prop 类型失败 : Invalid prop `children` supplied to `ForwardRef(Grid)`

javascript - 如何在 BlueprintJS 中使用颜色?

javascript - CSS 旋转变换不停留在新位置

javascript - XML3D 边界框

javascript - 奇怪的 HTML5 Worker JavaScript 代码(消息)

javascript - React.js 中的动态子导航(传播事件和属性)

javascript - 具有动态创建功能的 React 组件

javascript - 无法对 react 中的对象数组进行排序