reactjs - 在 onClick 事件之后 UseState 不会重新呈现页面
问题描述
通过 useState 挂钩设置状态后,我无法重新渲染页面。状态值发生变化,但页面没有重新呈现。
export function langauge(props: Props) {
const [languageChange, setLanguageChange] = React.useState(strings.getLanguage());
return (
{props.selected !== 'EN' && (
<MenuItem onClick={() => {
locale.changeLanguage('en'),
setLanguageChange('en')
}}>English - EN</MenuItem>
{props.selected !== 'FR' && (
<MenuItem onClick={() => {
locale.changeLanguage('fr'),
setLanguageChange('fr')
}}>French - FR</MenuItem>
)} );
}
我想重新呈现有关语言更改的页面。
解决方案
您的页面没有重新渲染,因为您实际上并没有根据状态变量有条件地渲染内容languageChange
。您正在有条件地基于props.selected
.
改变
{props.selected !== 'EN' && <Component />
至
{languageChange !== 'EN' && <Component />
它会起作用。
推荐阅读
- spring-boot - 使用spring boot kafka消费者客户端存储消费者偏移量的理想方法是什么?
- javascript - AJAX 调用后,HTML 页面未从 Flask 呈现
- reactjs - 如何在预渲染日历上使用 rerenderEvents() 方法
- spring - SpringBoot 如何从 ReactJS 获取当前用户?
- swift - 如何解决 myModel 变量中的 UserDefaults 设置错误?
- c# - XML Schema 发送带有结束标签和默认值根名称的空标签
- android - 存储库中的颤振文件夹
- python - 忽略 Python 中的 TypeError
- caching - 如何刷新 Google 图片搜索缓存?
- python - 从嵌套字典中选择一个随机值并在另一个嵌套字典中更新它