小编ysv*_*vet的帖子

如何从 useEffect 访问当前的 redux 状态?

我有一个从数据库中提取的对象列表(在我的例子中是“专辑”)。我需要编辑这些对象。在 useEffect 挂钩中的编辑组件中,我启动了使用其 ID 获取所需专辑的操作。这个动作有效。但是,在同一个 useEffect 中,我试图在触发操作之前获取更改的 redux 状态。现在我面临这个问题——我获取的只是 previos 状态。如何在当前 redux 状态的 useEffect 获取中实现?

我在这里看到过类似的问题,但是没有一个答案对我的用例有帮助。

我正在使用 redux-thunk。

编辑组件。问题出现在 setFormData 中 - 它从减速器中获取以前的状态,而不是当前的状态。它似乎在状态被 getAlbumById 改变之前触发:

//imports

const EditAlbum = ({
  album: { album, loading},
  createAlbum,
  getAlbumById,
  history,
  match
}) => {
  const [formData, setFormData] = useState({
    albumID: null,
    albumName: ''
  });

  useEffect(() => {
    getAlbumById(match.params.id);

    setFormData({
      albumID: loading || !album.albumID ? '' : album.albumID,
      albumName: loading || !album.albumName ? '' : album.albumName
    });

  }, [getAlbumById, loading]);

const { albumName, albumID …
Run Code Online (Sandbox Code Playgroud)

reactjs react-redux react-hooks use-effect

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

react-hooks ×1

react-redux ×1

reactjs ×1

use-effect ×1