考虑以下简单状态
ptrace(PTRACE_CONT, ...)
所以,我们有一个查询和一些结果。现在,我们必须采取行动:
interface State {
query: string;
results: string[];
}
用户输入新查询后,我想执行搜索并显示结果。以下哪两种方法是正确的:
有一个函数updateQuery,它调度一个SetQueryAction并调度一个执行查询的异步thunked函数,然后调度SetResultsAction来更新State。
Dispatch SetQueryAction,让一个侦听器订阅State.query,该侦听器执行执行查询的异步thunk函数,然后调度SetResultsAction以更新State。
因此,主要问题是:我应该将派生状态与查询紧密耦合,还是使用订阅侦听器将它们解耦。
修改
让我们让这个例子更加复杂:设置结果以递增方式流动,我想逐步填充结果,单个查询会产生一系列SetResultsAction。
所以,它不再是“纯粹的”了。