如何将 redux-sagas 与 react-hooks 一起使用

Posted

技术标签:

【中文标题】如何将 redux-sagas 与 react-hooks 一起使用【英文标题】:how to use redux-sagas with react-hooks 【发布时间】:2020-01-06 22:45:26 【问题描述】:

我想知道如何将 redux sagas 与 react hooks 一起使用,redux 是如何实现的,有什么独特的用例需要了解吗?

我应该使用常规的反应调度吗?

【问题讨论】:

【参考方案1】:

我很难找到这些信息,因此我为其创建了一个项目,以更好地了解如何在 sagas 中使用钩子。

https://github.com/KevinDanikowski/react-sagas-with-hooks-pokemon-sample-app

特别是,这个代码块将是最有用的,其他一切都只是常规 redux 的相同实现。

...
  const dispatch = useDispatch();
  const pokemon = useSelector(state => 
    return state.pokemons.find(pokemon => pokemon.id === pokemonId)
  );
  const callPokemon = useCallback(
      () => 
        dispatch(
          type: `GET_POKEMON$useSaga ? '_SAGA':''`,
          pokemonId
        ),
    [dispatch, pokemonId, useSaga],
  )

  useEffect(() => 
    const getPokemon = () => callPokemon();

    getPokemon();
  , [callPokemon]) 
...

【讨论】:

介意提供一个变化的样本吗?这样我们就不用到处打猎了? @BBaysinger 我不确定你的意思,如果你正在寻找源文件,它在github.com/KevinDanikowski/…

以上是关于如何将 redux-sagas 与 react-hooks 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将 redux-saga 添加到我的 Web 扩展中?

将异步操作分派到 redux-saga 后如何捕获 redux 存储中的更改

redux-saga 与 redux 一起使用会导致 render() 被调用两次

react-hot-loader 与外部 configureStore 使用 redux-saga 抛出“regeneratorRuntime 未定义”

从 redux-saga 函数访问 React 上下文值

如何设置 redux-sagas 和文件结构?