use*_*352 7 reactjs redux react-redux
TLDR:我希望能够在外部"Util"文件中获取最新的Redux状态.我怎样才能做到这一点?
假设我有播放列表..在应用的许多不同区域,您可以"开始"播放列表.所以在"Util"文件中我有"startPlaylist"函数,所以我不必在很多地方编写函数,只在一个地方编写.
这个问题是,如果我在播放列表运行时对播放列表进行任何更改,"playNextPageInPlaylist"函数将不会收到播放列表的任何更新.
我可以做什么和更改,以便我在Util文件中的功能将获得最新的Redux状态?
我在7个不同地区startPlaylist功能,它涉及到的功能(全部在文件的Util)是相当复杂..它是没有意义的复制和粘贴,在所有7个文件.
谢谢你的帮助
React.Component文件1
import { startPlaylist } from '../util/EntitiesUtil';
start1() {
startPlaylist( store.playlists[0] );
}
Run Code Online (Sandbox Code Playgroud)
React.Component文件2
import { startPlaylist } from '../util/EntitiesUtil';
start2() {
startPlaylist( store.playlists[0] );
}
Run Code Online (Sandbox Code Playgroud)
EntitiesUtil.js
export function startPlaylist( playlistFromStore ) {
// do stuff
playNextPageInPlaylist( playlistFromStore ); // keeps grabbing next page on a timer
}
Run Code Online (Sandbox Code Playgroud)
你有几个选择,我看到的主要选择是:
我认为第二个选项是理想的,因为您希望您util做的东西反映在商店中或需要商店中的东西。所以基本上你util想成为redux流程的一部分!
嗯,这不是一个,component所以你不能“连接”它,但它可以(并且在我看来应该是)位于你的操作和减速器之间的广告中间件。
您可以在此处阅读有关中间件的信息。
我会为您提供一个用例示例,但您没有发布任何有意义的代码。
编辑
您的评论的后续行动:
它非常基本。
js您应该学习的另一个主题)applymiddleware(与您所做的一样,redux-thunk它本身就是一个中间件)。我真的建议看一下redux-thunk 它整个 11 行的源代码。
你可以从中学到很多东西。
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |