reactjs - 在redux中管理具有ID的多个列表项的状态
问题描述
每当我单击一个列表项时,我的 DOM 中有多个列表项,我为该特定项调用 API 并将其存储在我的 Redux 存储中,当我单击 DOM 中的另一个项时,我将它添加到我的 redux 存储中的数组中。
我面临的问题是当我再次单击同一个列表项时我不想再次点击 API 我想显示已经存储在我的 redux 商店中的特定列表项的数据我应该怎么做?
我的减速机代码
import * as actionTypes from '../actions/actionTypes';
const initialState = {
fareRules: [],
error: false
};
const reducer = (state = initialState, action) => {
switch(action.type) {
case actionTypes.SET_FARE_RULES:
return {
...state,
fareRules: [
...state.fareRules,
{
id: action.id,
rules: action.fareRules[0][0]
}
]
}
case actionTypes.GET_FARE_RULES_FAILED:
return {
...state,
error: true
}
default:
return state;
}
}
export default reducer;
解决方案
在处理单击项目的处理程序中,您需要检查商店中是否已存在该项目的票价规则(您的组件需要有权访问商店)。
如果该项目的票价规则不存在,则添加它们(触发相关操作),否则显示它们。
推荐阅读
- gcc - 在两个链接文件中使用强符号和弱符号时的内存覆盖
- php - 函数的显示结果是主视图刀片内的控制器(LARAVEL,PHP)
- java - 如何在 Java 中附加两个具有不同列的 Spark 数据帧
- reactjs - ReactJS 从 API 获取用户数据并添加到表中
- c++ - ARM中易失性变量的奇怪汇编程序输出
- spring-boot - 无法提交 JPA 事务;嵌套异常是 javax.persistence.RollbackException:
- javascript - 单击类时将样式添加到链接,并在再次单击该类时将其删除
- javascript - 如何验证复选框以及如果验证将一个文本框复制到另一个文本框
- java - Java 客户端从服务器读取不正确的整数
- angular - Angular [ngClass] 指令不适用于滚动事件