Я играю с Mobx-state-tree.
В простой модели, которую я построил, я получаю эту ошибку «Uncaught TypeError: Cannot read property 'name' of undefined».
Я вставляю все блоки кода.
Index.js
import React,{Component} from "react";
import ReactDOM from 'react-dom';
import App from "./app";
import Invoice from "../models/Invoice"
const invoice = Invoice.create({currency:'EUR'}) ;
ReactDOM.render(<App invoice = {invoice}/>,document.getElementById('root'));
app.Js
import React,{Component} from "react";
import {observer} from "mobx-react"
class App extends Component
{
render(){
const {invoice} = this.props;
return(
<div className = "container-fluid">Invoicer
<h1>{invoice.status()} </h1>
{!invoice.isPaid && <button onClick = {invoice.markPaid}>Pay</button>}
</div>
);
}
}
export default observer(App);
модели / Invoice.js
import {types} from "mobx-state-tree";
import ItemList from "./ItemList";
const Invoice = types.model("Invoice",{
currency : types.string,
isPaid:false,
itemList : types.optional(ItemList,{items:[]})
})
.actions( self => ({
markPaid(){
self.isPaid = true;
}
}))
.views( self => ({
status(){
return self.isPaid ? "Paid,Go Home and Enjoy" :"Not Paid,work more and we will think about it";
}
}));
export default Invoice;
ItemList.js
import {types} from "mobx-state-tree";
import {Item} from "./Item";
const ItemList = types.model("ItemList",{
items: types.array(Item)
});
export default ItemList;
item.js
import {types} from "mobx-state-tree"
const Item = types.model("Item",{
quantity : types.number,
price: types.number,
comodityName: types.string
});
export default Item;
При компиляции с помощью npm в терминале нет ошибки. В bundle.js ошибка в этой строке
array: function(e) {
return new nt(e.name + "[]",e)
},
Я не уверен, почему возникает эта ошибка?
Версии для mobx: 5.0.3 и mobx-state-tree: 3.0.0
в чем разница между mobx и MobX?
Нет никакой разницы. Я хотел написать MobX 4. MST, похоже, теперь добавил поддержку MobX 5, так что это не должно быть проблемой.
у меня зависимость от mobx-react: 5.2.3. какая версия mobx-react должна быть установлена, если установлена версия mobx 4
Я не уверен. Последний, скорее всего, должен работать.
Можете ли вы воспроизвести эту проблему в песочнице для кода?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пропустите ItemList и сделайте это
itemList : types.optional(types.array(Item, []))
Вы используете дерево состояний MobX с MobX 4?