Ваш пример немного упрощен. Ваша фактическая проблема может быть несколько вещей, но я возьму удар по тому, что кажется наиболее вероятным.
Если цель состоит в том, чтобы содержимое вашего div было изменено, тогда ответ заключается не в том, чтобы использовать реквизиты вообще. Это именно то, для чего ваше государство!
var Banner = React.createClass({
render: function() {
return <div>this.state.word</div>
},
getInitialState: function(){
return {word: this.props.word};
}
changeWord: function(word){
this.setState({word: word});
}
});
EDIT:
Если вы пытаетесь изменить компонент из ванили JS внедренный в другом месте на странице:
Я думаю, что вам лучше всего в этом случае было бы использовать некоторые (если не все) из Flux шаблона дизайна: https://facebook.github.io/flux/docs/overview.html#content
Если не весь Flux парадигмы, вы могли бы по крайней мере, использовать пути потока обрабатывает «Магазины», которые являются по существу только Node.js EventEmmiters: https://nodejs.org/api/events.html
var BannerStore = new EventEmmitter();
var Banner = React.createClass({
render: function() {
return <div>this.state.word</div>
},
getInitialState: function(){
return {word: this.props.word};
},
changeWord: function(){
this.setState({word: BannerStore.word});
},
componentDidMount: function(){
BannerStore.on('banner_change', this.changeWord);
},
componentWillUnmount: function(){
BannerStore.removeListener('banner_change', this.changeWord);
}
});
function changeText(component, text){
if(component === 'banner'){
BannerStore.word = text;
BannerStore.emit('banner_change');
}
}
changeText(banner, 'Goodbye')
Использование полной парадигмы потока будет более чистым в долгосрочной перспективе, но более чем можно разумно ввести в SO.
Вы можете использовать [componentWillReceiveProps] (http://facebook.github.io/react/docs/component-specs.html#updating-componentwillreceiveprops), а затем [установить некоторое состояние] (https://medium.com/ response-tutorials/response-state-14a6d4f736f5 # .p9hfmhflf), чтобы указать, что анимация должна произойти. Очевидно, вам нужен механизм передачи новых компонентов в Banner. Вы можете для этого создать компонент упаковки, который опросает текст баннера или что-то еще, а затем устанавливает баннер 'word' prop. Реакция сделает все остальное. – ctrlplusb
Ознакомьтесь с некоторыми учебниками. http://facebook.github.io/react/docs/tutorial.html – ctrlplusb