reactjs - 将全局状态复制到组件本地状态
问题描述
我正在尝试将全局状态复制到组件本地状态。我正在使用带有钩子的 Redux。
这是我的代码,但本地状态正在返回一个空的对象。
const transaction = useSelector((state) => state.data.transaction)
const [localTransaction, setLocalTransaction] = useState(transaction)
谢谢!
解决方案
的默认值useState
是在挂载时设置的,因此如果此时存储中没有任何内容,它将是无效的,对其所做的任何更改也不会反映。如果您有正当理由将其再次存储在本地状态中,那么您需要执行以下操作:
const transaction = useSelector((state) => state.data.transaction)
const [localTransaction, setLocalTransaction] = useState(null)
useEffect(() => {
if (!localTransaction && transaction) {
setLocalTransaction(transaction);
}
}, [transaction, localTransaction])
推荐阅读
- parameters - 迭代器的通用可变和非可变参数
- sql - 未包含在组中的非聚合值在哪里?
- apache - 添加 SSL 后,Cakephp 3 前缀路由在 Linux 服务器中不起作用
- javascript - 有没有办法自动折叠响应式布局折叠列表的特定列?
- postgresql - PostgreSQL 和 Golang 之间的数据类型
- html - 将 Bootstrap 表条带化应用于动态表不起作用
- python - Heroku 上的 Python Flask 应用程序不会立即更新变量
- java - Feign客户端通过库添加时总是为空,我该如何解决?
- python - 无法安装硒 4
- python - Cythonize 为 .c 和 .o 文件生成两个单独的构建文件夹