【发布时间】:2022-10-20 01:28:36
【问题描述】:
我想在选择器中调用 API 后在 atom 中设置值,因为我必须添加参数来调用 API。
原子
export const downloadData = atom({
key: 'downloadData',
default: [],
});
选择器族
export const downloadDataResultsQuery = selectorFamily<Downloads[], string[]>({
key: 'downloadDataResultsQuery',
get:
(names) =>
({ get }) => {
const data = get(waitForAll(names.map((name) => downloadDataResultQuery(crateName))));
// ATTENTION: I wanna set value for `downloadData` here
return data;
},
});
原子家族
export const downloadDataResultsState = atomFamily<Downloads[], string[]>({
key: 'downloadDataResultsState',
default: (crateNames) => downloadDataResultsQuery(names),
});
我想在像const downloadDataResults = useRecoilValue(downloadDataResultsState);一样调用downloadDataResultsState之后得到不带参数的下载值,但是我找不到方法。
有没有办法做到这一点?
【问题讨论】:
-
你解决了这个问题吗?
-
不……我还没找到
-
也许您可以尝试使用
useRecoilCallback从selectorFamily设置downloadData。
标签: reactjs typescript recoiljs