It seems to me that people are using model and props interchangeably. I try to find documents about props but failed. Could someone tell me the difference?
The model method creates a new model. It takes two parameters:
You can create a new model and specify the properties. Or you can create the model first and then 'extend' it with the props method (props is short for properties). TodoOne and TodoTwo are the same.
const TodoOne = types.model("Todo", {title: types.string, done: types.boolean})
const TodoTwo = types.model("Todo")
.props({
title: types.string,
done: types.boolean
})
But how is this useful? Well the props method doesn't mutate the current type it creates a new one and extends it. This means that we can add or override existing 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
The views and actions methods can extend models in same way as the props method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With