首页 文章

如何在reactjs / redux应用程序中维护列表中的选定项?

提问于
浏览
2

我是reactjs / redux应用程序世界的新手 . 我正在创建一个带有页面布局的Web应用程序,其中左侧有一个名称列表,右侧显示所选名称的详细信息 .

使用redux,当从列表中选择名称时,应用程序将调度ajax调用以获取详细信息 . 这最终会使用所选的详细信息更新redux状态,并使详细信息组件随信息一起更新 .

名称列表使用ag-grid创建,因此它可以突出显示所选项目 . 但是一旦更新了redux状态,所有组件似乎都会重新渲染,并且不再选择列表中的选定项 . 我猜一般来说,当页面加载时,名称列表的状态会回到初始状态(即如果列表被过滤则不再过滤) .

在选择项目之前,如何维护所选项目(以及在该列表上完成的所有其他操作)?我几乎以为我必须在我的还原状态下维持网格状态......但是这样对吗?这是我唯一的选择吗?

我的组件的结构是一个容器组件(WSContainer),它有两个子组件NameTable和NameDetails .

2 回答

  • 1

    我建议你调度一个动作,将selectedId保存在redux状态 . 我还建议将每个细节存储在一个对象中,其中id为键,细节为值

    detailsById: {
      id1: detail1,
      id2: detail2
    },
    selectedId: id1
    

    这将使您无需在显示详细信息之前等待ajax调用返回 . 此时,您只需显示与您选择的ID保存的ID匹配的详细数据 .

    有关redux操作的更多信息,请查看this .

  • 1

    为什么不在州内保留所选项目的值,索引或文本?然后,在页面呈现时,您可以使用componentDidMount或componentWillMount方法突出显示所选名称(或您想要执行的任何其他操作) .

    https://facebook.github.io/react/docs/react-component.html

相关问题