: 警告: 这是原工程的叉子
它能帮助常春藤 并使其与Angular 13+工作
@angular-redux/路由器
绑定连接 @ angular/ router 到 @ angular- redux/ core
设置
- 使用 npm 安装绑定 :
npm install @angular-redux/router --save
- 使用
routerReducer提供时Store数字 :
import { combineReducers } from 'redux';
import { routerReducer } from '@angular-redux/router';
export default combineReducers<IAppState>({
// your reducers..
router: routerReducer,
});
- 在您的根模块中添加绑定值 .
import { NgModule } from '@angular/core';
import { NgReduxModule, NgRedux } from '@angular-redux/core';
import { NgReduxRouterModule, NgReduxRouter } from '@angular-redux/router';
import { RouterModule } from '@angular/router';
import { routes } from './routes';
@NgModule({
imports: [
RouterModule.forRoot(routes),
NgReduxModule,
NgReduxRouterModule.forRoot(),
// ...your imports
],
// Other stuff..
})
export class AppModule {
constructor(ngRedux: NgRedux<IAppState>, ngReduxRouter: NgReduxRouter) {
ngRedux.configureStore(/* args */);
ngReduxRouter.initialize(/* args */);
}
}
如果我用Immultable.js 和我的Redux商店?
当使用包装纸处理您的商店状态时, 如 Immultable.js 等, 您需要改变标准设置中的两件事 :
- 提供接收类型动作的自减函数
UPDATE_LOCATION并返回有效载荷 合并到状态. - 通过选取器进入有效载荷状态,并将其通过
selectLocationFromState选项NgReduxRouter是因为initialize()。 。 。 .
这两个钩子将允许您存储此库使用的格式或包装的状态.
如果我有另一种方式提供当前网页的URL呢?
看你的应用需要。 它可能需要以不同方式提供当前页面的 URL
通过路由器。 可以通过以第二个论点初始化约束来实现: urlState$。 。 。 .
这个 urlState$ 参数允许您给出 NgReduxRouter a 一个 Observable<string> 该页面的当前 URL.
如果这一论点没有赋予约束方,则默认签署 @angular/router事件,和
从那里得到URL.