如果我们看一下todos示例,假设应用程序有多个视图(TodoList页面和另一个页面).
因此,不是直接引用todo项的数组的"todos",而是在状态/存储/缓存的顶层,它实际上只是具有某些自身状态的视图.
在该视图中,我们定义了待办事项列表和可见性过滤器 - 因此状态/存储/缓存不会如下所示:
{
todos: [TodoItem]
0:?TodoItem:0
completed: false
id: 0
text: "hh"
visibilityFilter: "SHOW_ALL"
}
Run Code Online (Sandbox Code Playgroud)
但是:
{
scenes: {
TodoList: {
todos: [TodoItem]
0:?TodoItem:0
completed: false
id: 0
text: "hh"
visibilityFilter: "SHOW_ALL"
},
SomeOtherView: { /* other state */}
}
}
Run Code Online (Sandbox Code Playgroud)
它甚至可能被孤立在它自己的数据"模块"中,就像这里提出的那样:https://medium.com/@alexmngn/how-to-use-redux-on-highly-scalable-javascript-applications-4e4b8cb5ef38:
{
scenes: {
TodoList: {
data: {
todos: [TodoItem]
0:?TodoItem:0
completed: false
id: 0
text: "hh"
}
visibilityFilter: "SHOW_ALL"
},
SomeOtherView: { /* other state */}
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序范围的状态将进一步存储一个级别: …
我收到以下错误:
C:\ Program Files \ dotnet \ sdk \ 2.0.3 \ Microsoft.Common.CurrentVersion.targets(4052,5):警告MSB3026:无法将“ obj \ Debug \ netcoreapp2.0 \ MyApp.dll”复制到“ bin \ Debug \ netcoreapp2.0 \ MyApp.dll”。在1000毫秒内开始重试1。该进程无法访问文件'C:\ stackoverflow \ MyApp \ bin \ Debug \ netcoreapp2.0 \ MyApp.dll',因为该文件正在被另一个进程使用。[C:\ stackoverflow \ MyApp \ MyApp.csproj]
当尝试dotnet run从不同终端对同一项目多次使用时。如何在开发时轻松地运行同一应用程序的多个实例,而不必复制文件夹?
如果我在完全相同的时间同时启动它们,则有时会起作用:/
我明白了:
错误:[mobx-state-tree]期望一个mobx-state-tree类型作为第一个参数,得到类HubConnection {constructor(urlOrConnection,options = {}){options = options || {};
尝试这样做时:
import { HubConnection } from '@aspnet/signalr-client';
.model('MyStore', {
connection: types.optional(HubConnection, new HubConnection('http://localhost:5000/myhub')),
})
Run Code Online (Sandbox Code Playgroud)
我可以在我的React组件的构造函数中声明它,而不是像以前那样
constructor(props){
super(props);
this.connection = new HubConnection('http://localhost:5000/myhub');
}
Run Code Online (Sandbox Code Playgroud)
但是,所有附加的事件处理程序也需要在组件中定义
componentDidMount(){
this.connection.on('Someaction', async(res: any) => {});
}
Run Code Online (Sandbox Code Playgroud)
并开始/关闭连接
handleBtnClicked = () => {
this.connection.start().then(() => self.connection.invoke('Someotheraction'));
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我认为这属于模型和模型动作,因此反应组件仅触发对模型的操作,仅此而已.
有没有办法在mobx-state-tree模型中存储除mobx-state-tree类型之外的其他方法,你能以某种方式将它包装在mobx类型中,或者这实际上不是属于mobx的东西,因此故意.