在我看来,人们在使用 model
和 props
可以互换。我试着找有关道具的文件,但失败了。谁能告诉我其中的区别?
的 model
方法创建一个新模型。它需要两个参数。
您可以创建一个新的模型并指定属性。或者您也可以先创建模型,然后用 "扩展 "它。props
方法(props是属性的简称)。TodoOne和TodoTwo是一样的。
const TodoOne = types.model("Todo", {title: types.string, done: types.boolean})
const TodoTwo = types.model("Todo")
.props({
title: types.string,
done: types.boolean
})
但这有什么用呢?那么 props
方法并不突变当前的类型,而是创建一个新的类型并扩展它。这意味着我们可以添加或覆盖现有的道具。
const Todo = types.model("Todo", {title: types.string, done: types.boolean})
const ColorfulTodo = Todo.props({color: types.string}) // returns a new model with a new property
const DefaultTodo = Todo.props({done: false}) // returns a new model with done property overwritten to default to false
在这个方法中,我们可以添加或覆盖现有的道具。views
和 actions
方法可以以同样的方式扩展模型,如 props
方法。
模型需要属性。
const Todo = types
.model("Todo", {
title: types.string,
done: false
})
在上面的例子中,我们创建了一个 Todo
模型(MST模型),具有两种性质。
title
这是一个 String
done
巫婆 Boolean
并默认为 false
所以当你听到 props
他们指的是模型的属性。