В моем приложении React, когда пользователь входит в систему, его пользовательские данные устанавливаются на UserStore.currentUser
. Как компоненты должны получить доступ к UserStore.currentUser
?
Кажется, у компонента есть 4 варианта доступа к этим данным. Какой (если есть) правильный?
Вариант 1. Установите его в "состояние" компонента
var ProfilePicture = React.createClass({
getInitialState: function(){
return {
currentUser: UserStore.currentUser
}
},
render: function(){
return <h1>Hi my name is {this.currentUser.name}</h1>;
}
});
Вариант 2. Прямой доступ к ресурсу магазина
var ProfilePicture = React.createClass({
render: function(){
return <h1>Hi my name is {UserStore.currentUser.name}</h1>;
}
});
Вариант 3. Доступ к свойству магазина с помощью метода получения
var ProfilePicture = React.createClass({
render: function(){
return <h1>Hi my name is {UserStore.getCurrentUser().name}</h1>;
}
});
Вариант 4. Установите currentUser в состояние корневого компонента. Передать в качестве опоры всем остальным
var App = React.createClass({
getInitialState: function(){
return { currentUser: UserStore.currentUser };
},
render: function(){
return <div>
<ThingA />
<ThingB />
<ProfilePicture userName={this.state.currentUser.name} />
</div>;
}
});
var ProfilePicture = React.createClass({
render: function(){
return <h1>Hi my name is {this.props.userName}</h1>;
}
});