通过重新选择将选择器结果传递给另一个选择器

时间:2019-02-18 20:21:27

标签: reactjs react-redux reselect

我正在创建选择器以从状态中获取派生数据,但是我遇到了一个问题,其中我的一个输入选择器依赖于另一个输入选择器的结果,我找不到解决方法它。我的Redux状态是可序列化和规范化的,类似于关系数据库,简化后的版本如下所示:

app.delete('/api/devices/:id', (req, res) => {
    db.all('delete from devices where id = ' + req.params.id, function (err) {
        console.log(this.changes)
        if (err) {
            return res.status(500).send(err)
        }
        else {
            return res.status(204).send()
        }
    })
})

这意味着必须先完成任务1,然后才能启动任务2,依此类推。我正在尝试编写选择器,以根据每个任务的前任派生每个任务的开始/结束日期,或者使用“手动开始”(如果存在)。

最初的直觉是编写如下所示的选择器:

const state = {
  tasks: {
    1: {
      manualStart: '1/1/2019'
      duration: 3
    },
    2: {
      manualStart: undefined
      duration: 2
    },
    3: {
      manualStart: undefined
      duration: 5
    },
    ...
  },
  taskPredecessors: {
    2: 1,
    3: 2,
    ...
  }
}

如何创建选择器以获取任务的前置任务结束日期?我想获取任务的前身ID,然后使用该ID调用getTaskEnd选择器。我不能将一个的结果用作另一个的参数。

P.S。 -我知道这没有正确记录。我计划使用re-reselect。只是还没有到那一点。

0 个答案:

没有答案