我有一个ReactiveCommand会抛出以下错误。
实现IHandleObservableErrors的对象(通常是一个 因此,ReactiveCommand或ObservableAsPropertyHelper)存在错误 打破其可观察的管道。为防止这种情况,请确保管道 没有错误,或者订阅了ThrownExceptions属性 有问题的对象来处理错误的案件。
这是代码(方法A):
private List<Dto> _items;
public List<Dto> Items
{
get => _items;
set => this.RaiseAndSetIfChanged(ref _items, value);
}
RefreshCommand = ReactiveCommand.CreateFromObservable(() => GetItems
.Do(dtos => Items = dtos)
.Select(_ => Unit.Default))
.DisposeWith(Disposables);
RefreshCommand.ThrownExceptions.Subscribe(err => Console.WriteLine(err.ToString()));
RefreshCommand.ExecuteIfPossible();
我还尝试了别的东西(方法B):
private readonly ObservableAsPropertyHelper<List<Dto>> _items;
public List<Dto> Items => _items.Value;
this._items = GetItems.ToProperty(this, x => x.Items);
我的问题是:
我正在使用Uno.ReactiveUI,它是reactiveUI版本8.0.0的分支
谢谢。
更新
如果我注释掉ExecuteIfPossible
并点击RefreshCommand
绑定的按钮,那么我没有运行时错误。
当我离开ExecuteIfPossible
时,内部异常是
无法加载文件或程序集'Uno.Foundation, Version = 255.255.255.255,Culture = neutral,PublicKeyToken = null'。该 系统找不到指定的文件。
我甚至不知道ExecuteIfPossible
是诚实的。我只想打电话给Execute(null)
,但智能感知不会让我(也不会编译)。所以这肯定与ReactiveUI的Uno implmentation有关。
UPDATE2
为了Execute
可用,我必须制作RefreshCommand
类ReactiveCommand<Unit, Unit>
。然后我可以编写以下内容,一切都按预期工作。
RefreshCommand.Execute(Unit.Default).Subscribe().DisposeWith(Disposables);
UPDATE3
问题毫无意义,应该“关闭”,因为问题与其标题或描述无关。这只是我:
感谢那些花时间帮助我的人。