Przełączanie niektórych kodów w Meteor 1.3 na ES6 + Składnia odpowiedzi. Komponent wymaga uzyskania danych Meteor, więc używam createComponent do zamiany getMeteorData(). Problem polega na tym, że stary getMeteorData używał stanu z komponentu, do którego nie ma dostępu komponent createContainer.Jak obsługiwać dane meteorytów, które wymagają stanu z komponentu potomnego?
Stary kod:
Component = React.createClass({
mixins: [ReactMeteorData],
getMeteorData() {
var mo = this.state.currentMonth;
var start = newDate(moment(mo).startOf('month'));
return {
events: collections.events.find({
$or: qwry,
startDate: { $gte: start },
endDate: { $lte: end }
}).fetch(),
}
},
render() {
...
}
});
Nowy Kodeks dotąd
class Component = React.Component {
constructor(props) {
super(props);
}
render() {
...
}
}
export default createContainer(({params}) => {
var mo = this.state.currentMonth;
var start = newDate(moment(mo).startOf('month'));
return {
events: collections.events.find({
$or: qwry,
startDate: { $gte: start },
endDate: { $lte: end }
}).fetch(),
}
}, Component);
Uzyskiwanie błąd "nie można uzyskać currentMonth undefined", ponieważ próbuje uzyskać dostęp do stanu. Jakieś sugestie?
nie próbować wysłać ją od dziecka do rodzica, powinno być na odwrót, dominująca posiada stan dzieci i przekazuje go jako rekwizyty ... reagują dokumenty na wielu komponentów: W React , dane przepływają od właściciela do posiadanego komponentu przez rekwizyty: https://facebook.github.io/react/docs/multiple-components.html – JordanHendrix
tak, zdaję sobie z tego sprawę, ale staram się wymyślić najlepszy sposób na konwersję do nowego formatu w oparciu o sposób, w jaki był wcześniej obsługiwany. Po prostu próbuję dowiedzieć się, czy muszę całkowicie przerobić sposób, w jaki otrzymujemy zmienną "mo" w bieżącym kodzie, lub jeśli istnieje jakiś rodzaj obejścia dla komponentów, które wcześniej używały stanu komponentu w getMeteorData. – ebrillhart
dlaczego nie możesz po prostu umieścić funkcji getMeteorData wewnątrz elementu react.Component? to dobrze, że robię – JordanHendrix