У меня возникла проблема с созданием компонента с использованием реакции и martyjs. Я уверен, что это опечатка или что-то еще, но я просто не могу ее найти. Хотя у меня есть состояние mixin в компоненте, состояние не заполняется, и не похоже, что getState даже вызывается в mixin.Состояние null в компоненте
Mixin.es6
var StateMixin = Marty.createStateMixin({
listenTo: VideoStore,
getState: function() {
return {
items: VideoStore.list(),
currentItem: VideoStore.select(),
}
}
});
State.es6
var VideoStore = Marty.createStore({
displayName: "Store",
handlers: {
list: Events.List,
render: Events.Render
},
getInitialState: function(){
return { };
},
list: function(){
return this.fetch({
id: 'list',
locally: function(){
if(this.hasAlreadyFetched('list'))
return this.state.items;
},
remotely: function(){
return DissolveStateSource.list();
}
});
},
select: function(){},
render: function(){}
});
Component.es6
$(()=>
React.render(
<VideosTable/>,
$("#container")[0]
));
var VideosTable = React.createClass(
{
mixins: StateMixin,
render: function() {
var body = this.state.list.when({ //state is null here
pending: function(){
return <span className="ball"></span>;
},
failed: function(error){
return <div className="error">error.message</div>;
},
done: function(videos){
return <div>Videos</div>;
}
});
return <h2>hello</h2>;
}
});
Любая идея, что я делаю неправильно?
Edit: Я добавил JS бен вещь здесь
http://jsbin.com/lekegicumo/2/edit?html,js,console,output
Я попробовал, но getInitialState не вызывается либо , Кажется, что в микшинге ничего не называется. – stimms
@stimms Нашел другого виновника. Проверьте мой отредактированный ответ. – jlowgren
тоже пробовал. Я действительно посмотрел на боевой код, и он позволяет либо массив, либо один микшинг. Я добавил живую версию здесь http://jsbin.com/lekegicumo/2/edit?html,js,console,output, чтобы другие могли видеть, что я делаю – stimms