#reactjs #react-redux #redux-form
#reactjs #реагировать-redux #redux-форма
Вопрос:
В моей redux-форме я пытаюсь инициализировать форму данными, которые я получаю от API и передаю в компонент через props. Прямо сейчас моя функция инициализации может принимать и отображать строки (т. Е., если я передаю "questionText: "some text"
, это заполняет текст вопроса <Field>)
. Однако, когда я передаю состояние реквизитов, которые я принимаю, ничего не заполняется.
Когда я это делаю "questionText: this.state.offerContent.name"
, в <Field>
ничего не отображается.
Я пытаюсь выяснить, почему это происходит. Вот некоторый соответствующий код.
constructor(props) {
super(props)
this.state = {
offerContent: ''
}
componentDidMount(){
this.props.offerCallBack()
.then(c => {
this.setState({
offerContent: c,
});
})
.catch(error => {
console.log(error);
});
this.handleInitialize();
}
handleInitialize() {
const initData = {
"questionText": this.props.offerContent.name,
};
this.props.initialize(initData);
}
<Field
name="questionText"
type="text"
id="questionText"
component={renderField}
label="Question Text"
/>
const form = reduxForm({
form: 'offerquestion',
enableReinitialize: true
});
function mapStateToProps(state) {
return {
offerContent: state.offerContent
}
}
export default connect(mapStateToProps)(form(OfferExample));
** это то, что происходит, когда я console.log(this.props) в этом компоненте OfferExample:
Комментарии:
1. Разве ваш метод mapStateToProps не должен содержать offerContent: state.offerContent … или какую-то подобную строку?
2. это то, что я пробовал, но тогда он все еще не заполняется: ( @G_S
3. Но в опубликованном вами коде нет этой строки.
4. Я только что попробовал это локально. Я обновлю свой код в своем вопросе, чтобы включить его
5. Можете ли вы проверить это в компоненте offerexample.props ?