Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
525 views
in Technique[技术] by (71.8m points)

setState不会触发渲染?

RT

我想做一个根据路由参数不同,进入的时,下拉框默认选中不同的功能。

const [selected, setSelector] = useState<number>(0)

useEffect(() => {
   // 这个useEffect应该每次进入页面都会执行的
   const { value } = getParams() // 这是使用window.location.href获取URL,然后截取解析传参
   setSeletor(value)
}, [])

selected值传给页面上的下拉框,第一次进入的时候页面会设置下拉框当前的值为传参,但是使用其他路由传参再次进入还是显示之前的值。

当点击下拉框展示下拉列表的时候,才会正确的显示新的值。

这是为什么呢????


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

思路:
做个打印在useEffect里,看下每次进入页面是否会打印,并且看下value是否是url上的传参一致,调试调试就知道了。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...