能够在安装组件时检索通过分派操作初始化的数据

问题描述 投票:0回答:1

我正在尝试使用 Angular 的新 Redux 实现(@reduxjs/angular-redux)。 我遵循了文档的入门和 TypeScript 指南。

我能够调度操作并更新商店。 我能够在用户执行点击等操作后从商店检索数据。

我能够在安装组件时分派操作,以便初始化存储中的数据,但我能够从

injectSelector
检索初始化的数据。组件似乎没有检测到更新已更新,因此没有重新渲染。

基本上,我的状态已更新并获得了正确的数据,但组件不会重新渲染。

我所拥有的截图

AppComponent.ts:

@Component({enter image description here
  selector: 'app-root',
  standalone: true,
  templateUrl: './app.component.html',
  styleUrl: './app.component.scss',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AppComponent {
  count = injectAppSelector((state) => state.counter.value);
  dispatch = injectAppDispatch();

  constructor() {
    this.dispatch(increment());
  }

  ngOnInit() {
    this.dispatch(increment());
  }
}

app.component.html:

<pre>{{ count() }}</pre>

package.json 依赖项版本:

"dependencies": {
    "@angular/animations": "^18.2.0",
    "@angular/common": "^18.2.0",
    "@angular/compiler": "^18.2.0",
    "@angular/core": "^18.2.0",
    "@angular/forms": "^18.2.0",
    "@angular/platform-browser": "^18.2.0",
    "@angular/platform-browser-dynamic": "^18.2.0",
    "@angular/router": "^18.2.0",
    "@reduxjs/angular-redux": "^1.0.0",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.14.10",
    "@reduxjs/toolkit": "^2.2.7",
    "redux": "^5.0.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^18.2.7",
    "@angular/cli": "^18.2.7",
    "@angular/compiler-cli": "^18.2.0",
    "@types/jasmine": "~5.1.0",
    "jasmine-core": "~5.2.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "typescript": "~5.5.2"
  }

我希望当我通过

injectAppSelector
将“count()”连接到商店时,并且当商店的状态发生变化时,由于“OnPush”策略,会自动检测到更改并更新视图。

如果我使用上面的代码运行应用程序,即使状态包含 2,我也会以 0 登陆页面。

我不知道我是否误解了 Angular 如何重新渲染视图,或者我是否错过了这个 Redux 实现中的某些内容。

angular redux angular-redux
1个回答
0
投票

这里是 Angular Redux 的维护者!

这是我们在 v1.0.0 中遇到的错误,根据您的报告,该错误现已在 v1.0.1 中修复。

尝试一下,让我们知道您的想法 - 谢谢!

https://github.com/reduxjs/angular-redux/releases/tag/v1.0.1

© www.soinside.com 2019 - 2024. All rights reserved.