Я работаю над формой с интерактивными входами.Они должны реализовать себя с информацией в родительском состоянии.
Я использую Axios, чтобы получить данные для отображения, получая их из внешнего API.Я пытался установить значения по умолчанию, но они никогда не актуализируются с более новыми значениями.
class Form extends React.Component {
getData() {
axios.get('http://xxx/getform/').then(
res => this.setState(res.data)
);
}
componentDidMount() {
this.getData();
setInterval(() => {
this.getData();
}, 36000000)
}
render() {
return (
<div>
<form>
<DatePicker />
</form>
</div>
)
}
}
class DatePicker extends React.Component {
constructor(props) {
super(props);
this.state = {
selected: new Date(),
runMin: new Date(),
runMax: new Date()
};
}
getDate() {
console.log('DAD');
try { // if axios didn't finish, to avoid undefined
this.setState({
runMin: super.state.RunMin,
runMax: super.state.RunMax})
} catch (e) {
this.setState({
runMin: new Date(),
runMax: new Date()})
}
}
componentDidMount() {
this.getDate();
this.setState({selected: this.state.runMax});
}
render() {
return (<div></div>);
}
}
На самом деле после вызова axios дочерние элементы не воспроизводятся.Я разделил вызов axios и компонент, использующий его, потому что компонент Form
выполняет один вызов для нескольких дочерних элементов (здесь не отображается), и они читают состояние родителя для визуализации.