Я использую реагировать и перевождь и было интересно, если следующее было возможно:Ожидание вызова Ajax перед установкой начального состояния React/Redux
Я делаю «Редактировать форму» компонент, и я хочу, чтобы установить начальное состояние preselected
. this.props.user.preselected.id.
Я могу назвать this.props.user.preselected.id
где-нибудь в случае установки начального value.I продолжать получать нулевое значение, за исключением, и я считаю, что это потому, что редуктор this.props.user
появляется только после того, как this.props.fetchSingleUser
завершена.
Можно ли установить начальное состояние на редуктор, который в настоящее время извлекается внутри одного и того же компонента?
class PropertyEdit extends Component {
static contextTypes = {
router: PropTypes.object
};
constructor(props) {
super(props);
this.state = {
preselected= this.props.user.preselected.id
};
}
componentWillMount() {
this.props.fetchSingleUser(this.props.params.id);
}
....
function mapStateToProps(state) {
return {
user:state.user.single
};
}
function mapStateToProps(state) {
return {
user:state.users.single
};
}
action.js
export function fetchSingleUser(id) {
return function(dispatch) {
axios.get(`${URL}/users/${id}`)
.then(response => {
dispatch({
type:FETCH_USER,
payload: response
});
})
.catch(() => {
console.log("Error ");
});
}
}
редуктор:
const INITIAL_STATE = { single: null };
export default function(state = INITIAL_STATE, action) {
switch (action.type) {
case FETCH_USER:
return {...state, single: action.payload.data};
}
return state;
}
Я просто добавил в своем действии создателя. Я думаю, что это имеет смысл. Вы говорите, что я должен отправить другое действие после того, как я выберу пользователя и установил его как мой редуктор для отображения в компоненте? – lost9123193
Можете ли вы также показать свой редуктор, пожалуйста? – sylvain
уверен, что добавил. – lost9123193