mam reagować składnik, pozwala nazwać jako składnik 1Reactjs Jak zmienić stan elementu z innym komponentem
define([..., /path/component_2.jsx], function(..., Component2) {
var Component1 = React.createClass({
getInitialState: function() {
return {.......};
},
componentDidMount: function() {
.......
dates = ....;
Component2.setState({dates: dates});
}
render: function() { return (<div ...></div>) }
});
}
Jak widać, jestem wywołanie Component2.setState w tym komponencie . Ale dostaję błąd, jak setState nie jest funkcją. Próbowałem tego z definiowaniem funkcji niestandardowej zamiast funkcji setState w komponencie 2 i wywoływania tej funkcji z komponentu 1, ale otrzymuję ten sam błąd, "nie jest funkcją".
i komponent 2:
define([..., ], function(...) {
var Component2 = React.createClass({
getInitialState: function() {
return {.......};
},
render: function() { return (<div ...></div>) }
});
}
Więc myślę, że w reactjs wywołuje komponent tylko do renderowania coś (React elementów DOM)? i nie można zmienić stanu komponentu?
Jeśli tak, to w jaki sposób mogę zmienić stan komponentu z innego komponentu, który nie jest początkowo dzieckiem lub rodzicem?
reagować plany [ostatecznie potępiać wstawek] (https://facebook.github.io/react/blog/2015/03/10/react-v0. 13.html), więc idąc dalej najlepiej jest znaleźć rozwiązania, które na nich nie polegają. –
@DanPrince naprawdę? hmm .. po prostu przeczytaj przyjemny dokument na temat mixins, które rakwaht opublikował – Abhi
Nie ma się tak stać w następnej wersji, ale zespół React pracuje nad znalezieniem lepszego rozwiązania. Jest dyskusja [tutaj] (https://github.com/facebook/react/issues/4023). –