javascript - 减少函数 React 中的重复状态
问题描述
我有以下代码:
function Home() {
const [view_points, setViewPoints] = React.useState(true);
const [view_races, setViewRaces] = React.useState(true);
const [view_wpm, setViewWPM] = React.useState(true);
function handleViewPoints(e) {
setViewPoints(e.target.checked);
}
function handleViewWPM(e) {
setViewWPM(e.target.checked);
}
function handleViewRaces(e) {
setViewRaces(e.target.checked);
}
<Step4
viewraces={handleViewRaces}
viewwpm={handleViewWPM}
viewpoints={handleViewPoints}
/>
<Step5
viewpoints={view_points}
viewraces={view_races}
viewwpm={view_wpm}
/>
它们被用作:
<Checkbox onChange={props.viewpoints}>Points</Checkbox>
<Checkbox onChange={props.viewraces}>Races</Checkbox>
<Checkbox onChange={props.viewwpm}>WPM</Checkbox>
这是很多重复。
有没有推荐的方法来减少重复代码而不转换到基于类的组件?
提前致谢。
解决方案
使用状态作为对象而不是布尔值。所以单一状态就足够了
const [state,setState] = useState({
view_points:true,
view_races:true,
view_wpm:true
})
推荐阅读
- python - 从选择列表中获取对象的 ID。Django,表格
- android - 使用 XmlPullParser 为特定标签解析 XML?
- azure-application-insights - Kusto 查询渲染函数忽略指定的 Y 范围
- java - 聚合多个休息调用spring boot 2
- javascript - 内容编辑模式应该是 ContentCard 组件的一部分吗?
- c# - Unity - 将参数覆盖与正常分辨率混合
- javascript - 在 PHP 中使用 innerHTML 加载 TinyMCE
- linker - xv6 中的 ELF 标头是什么?
- dialogflow-es - 在对话流中获得多个意图匹配
- python - 用 K-Means 聚类并重塑为彩色图像