【发布时间】:2021-09-12 09:37:36
【问题描述】:
我有一个问题,我正在尝试为通过 redux 设置的另一个 const (countryLabel) 设置一个状态 (selectedPathway) 的值。
一旦设置了“selectedPatway”,我想在<Select value={selectedPathway} />中显示结果这个选择是由围绕所有逻辑的主要组件返回的。
一切正常,但是当我刷新页面时,我在浏览器中看到“渲染的钩子比上一次渲染时更多”。代码如下:
const DefaultValue = () => {
let matchingOption = options.find((option) => option.value.includes(countryLabel))
let optionSelected = options.find((option) => option.value === value)
const [selectedPathway, changeSelectedPathway] = useState(matchingOption)
useEffect(() => {
let test = []
if(matchingOption) {
test = matchingOption
} else {
test = options[0]
}
changeSelectedPathway(test)
},[countryLabel])
useEffect(() => {
changeSelectedPathway(optionSelected)
},[value])
return selectedPathway
}
return (
<Select
value={DefaultValue()}
/>
)
我浏览了整个互联网,我认为我已经正确应用了所有内容(显然不是因为它不起作用......)。
- 不按条件调用钩子
- 在顶层使用钩子
任何帮助将不胜感激。
【问题讨论】:
标签: javascript reactjs redux use-effect