来自react-redux
/ redux-thunk
,有一个很好的方法来实例化一个客户端对象,将它传递给 ThunkMiddleware,然后在 thunk 中检索它:
// This is the instance I want during async calls
const myApiClient = new MyApiClient();
const store = createStore(
reducer,
applyMiddleware(thunk.withExtraArgument(myApiClient))
);
然后在我的thunk定义中:
const fetchSomething = (id) => {
return (dispatch, getState, myApiClient) => {
// It's the same instance!
return myApiClient.fetchSomething(id)
.then((res) ....);
}
}
在 Recoil 中,我看不到实现类似的方法:据我所见,文档中的示例假定原子/选择器的主体可以在没有任何外部实例化的上下文的情况下执行。
由于在设计 Recoil 时似乎不太可能不考虑这一点,我很好奇我在这里错过了什么?