Mam komponent React że przełącza się className
gdy składnik kliknięciuKiedy należy używać getInitialState w sposób React komponent
var Foo = React.createClass({
getInitialState: function() {
return {className: ''}
},
render: function(){
var className = 'bar ' + this.state.className
return React.createElement('div', {className: className, onClick: this.onClick})
},
onClick: function() {
this.setState({className: 'baz'})
}
});
To działa dobrze, ale kiedy jestem renderowania po stronie serwera aplikacji, otrzymuję następujący błąd
Warning: getInitialState was defined on a component, a plain JavaScript class.
This is only supported for classes created using React.createClass.
Did you mean to define a state property instead?
mój krok kompilacji jest ustawiony tak jak
var Foo = require('./Foo');
var factory = React.createFactory(Foo);
module.exports = React.renderToString(factory({}));
Dlaczego co robię źle i jak należy to zrobić?
Ten komunikat pojawia się, jeśli używasz zwykłego zajęcia ES6. Jaki jest twój proces budowania? Zobacz tutaj: http://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#es6-classes – zackify
Nie używam klas ES6 - zadam pytanie z moim przykładem kompilacji, ale mniej więcej po prostu renderToString – Patrick
Eksportujesz 'Foo' (nie ma go w twoim przykładzie). Właśnie stworzyłem mały projekt testowy, który działa dobrze i nie powoduje błędu. Moja aplikacja demo używa React 0.13. Wyjście: '
' – WiredPrairie