我尝试使用StateHasChanged(),但这并没有起作用,所以我查找并发现在FlightFinder演示中,它具有一个OnChange事件操作,因此我正在尝试实现它。
它可以工作,直到我尝试刷新浏览器,然后我遇到了这个错误:
System.InvalidOperationException:“当前线程未与渲染器的同步上下文相关联。在触发渲染或修改任何在渲染期间访问的状态时,请使用Invoke()或InvokeAsync()将执行切换到渲染器的同步上下文。”
这是我的代码:
private string _title = "TestSite";
public string Title => _title;
public event Action OnChange;
public void ChangePage(string pageName)
{
_title = pageName;
NotifyStateChanged();
}
private void NotifyStateChanged(int navigationType = 0)
{
OnChange?.Invoke();
}
我所要做的就是调用ChangePage("some Page Title"),它能正常工作,除非像我之前提到的那样尝试刷新。
我只是想通过另一个组件更改一个组件上的字符串,听起来并不那么疯狂。如果有更好的方法来处理标题或从其他组件更改内容,我很乐意听取建议。
那么,我该怎么做才能确保我的调用方法在正确的线程上运行? 还是有其他更有效的更改标题的方法吗?
提前感谢您!