У меня есть компонент, действие и магазин, используя React & Flux.[React] [flux] [EventEmitter] эта ссылка изменяется в компоненте для хранения ref
Когда я отправляю событие из Хранилища в метод в моем компоненте, «этот» ref в моем компоненте изменяется на «Сохранить», ссылка.
У вас есть какие-либо идеи, почему это происходит?
Магазин диспетчерская событие здесь, в getAllVotes() метод: https://huit.re/voteStoreRow41
import { EventEmitter } from 'events';
import dispatcher from '../dispatcher/dispatcher.jsx';
import request from 'superagent';
import nocache from 'superagent-no-cache';
const BASE_URL = "http://odu.priv/ws";
class VoteStore extends EventEmitter {
constructor(){
super()
this.votes = [];
this.voteComponent = {};
dispatcher.register(this.handleActions.bind(this));
}
getAll(){
return this.votes;
}
setVotes(listVote){
this.votes.push(listVote);
this.emit('change');
}
getAllVotes(){
this.emit('change');
}
И компонент обработки этого события здесь: https://huit.re/votesL33 где «это» изменения в исх voteStore находится в updateVote() метод ,
import React from 'react';
import { Vote } from '../vote/vote.jsx';
import voteStore from '../../stores/voteStore.jsx';
import { getAllVote } from '../../actions/voteActions.jsx';
class Votes extends React.Component {
constructor(props) {
super(props);
console.log('const -> ', voteStore);
this.state = {
votes : voteStore.getAll()
};
}
componentWillMount() {
voteStore.on('change', this.updateVote);
getAllVote();
console.log("Votes ", this.state.votes);
}
/*componentWillUnmount() {
voteStore.removeListener('change',this.updateVote);
}*/
updateVote(){
console.log('this -> ',this);
console.log('voteStore -> ',voteStore)
this.setState({
votes : voteStore.getAll()
});
console.log('this.state',this.voteComponent.votes);
}
То, что я просто не понимаю, почему мой «это» ссылка, если не мой экземпляр «голоса» больше, как только «getAllVotes()» метод называется в магазине. Это приводит к тому, что «this.state» в следующей строке не определен.
Заранее спасибо.
Вы должны размещать минимальное представление о проблеме здесь, а не сторонний сайт, который может измениться или исчезнуть завтра. – Rob
Обе ссылки указывают на одну и ту же строку. Странный. Пожалуйста, уточните –
@Rob извините об этом. Я обновил контент. Маленькие ссылки указывают на мой личный репозиторий Git. Без сомнения, это не исчезнет завтра ...;) Я просто, хотя было бы проще прямо показать правильно отформатированный код, который можно клонировать для получения полной информации. – Olivier