reactjs - Apollo 客户端反应变量更新未触发重新渲染
问题描述
我正在尝试通过单击来切换此组件中显示的图像。我正在使用 Apollo Client 的反应变量,如仅限本地字段中所示,并遵循此博客文章中的更新反应变量部分。
const Portrait = (props: PortraitProps): JSX.Element => {
const { index, profile } = props;
const { handleCardClick } = useGameEvent(boardStatusVar);
const status = useReactiveVar(boardStatusVar);
return (
<StyledPortrait
src={status[index].isHidden ? spinnerSVG : profile.pokemon.image}
alt={""}
onClick={() => { handleCardClick(index, status[index].isHidden); }}
/>
);
};
在调用回调之前和之后记录status[index].isHidden
显示反应变量值已正确更改,但组件未重新渲染。
额外信息:不确定它是否可能是问题的一部分,但对于上下文,StyledPortrait
它是一个 img 标签样式的组件,status[index].isHidden
初始值是true
并且它正确显示spinnerSVG
在浏览器中。
解决方案
推荐阅读
- android - 获取媒体文件并显示在列表中
- algorithm - 查找最长且包含最低可能数字的字符串的算法?
- css - 如何使用 css、z-index 将不同的堆叠上下文元素置于顶部
- c - 如何为 MPI 数据类型定义 uint_fast32_t?
- python - 如何计算并打印出kivy中点击的按钮数
- android - 一个apk中的两个应用程序
- python - 我正在尝试在 Python3 中创建一个 Instagram 机器人来练习 Web Scraping(找不到模块的错误)
- java - 如何在谷歌地图上添加按钮?
- java - 如何在 Spring MVC 中使用 @ModelAttribute 获取默认值?
- dialogflow-es - 如何在 Dialogflow 中禁用意图