【发布时间】:2019-11-09 02:09:57
【问题描述】:
我是新来的反应并面临以下问题: 我有两个按钮,想要渲染两个不同的组件。按下一个按钮应该通过状态钩子设置一个变量 true 并且应该显示第一个组件,另一方面,另一个组件的变量应该设置为 false。使用这种逻辑,我尝试渲染一个或另一个组件。
通过此设置,我收到以下错误消息:
重新渲染过多。 React 限制渲染次数以防止无限循环。
我想解决方案很简单,但我看不出这会导致问题的原因。 感谢您的帮助!
这里是相关代码的简化版:
import { Button } from "semantic-ui-react";
import React, { useState } from "react";
const App = () => {
const [showAggregated, setshowAggregated] = useState(true);
const [showDetailed, setshowDetailed] = useState(false);
return (
<div>
Test
<Button.Group>
<Button
size="mini"
onClick={(() => setshowAggregated(true), setshowDetailed(false))}
>
Aggregated Visualization{" "}
</Button>
<Button.Or />
<Button
size="mini"
onClick={(() => setshowDetailed(true), setshowAggregated(false))}
>
Detailed Visualization
</Button>
</Button.Group>
{/* Second Part of Page if Aggregated Component */}
{showAggregated && <div>Aggregated</div>}
{/* Second Part of Page if Detailed Component */}
{showDetailed && <div>Detailed</div>}
</div>
);
};
export default App;
【问题讨论】:
标签: reactjs react-hooks