Внутри моей основной App.js componentDidMount()
фазы жизненного цикла у меня есть запрос на получение услуги службы отдыха.
РЕДАКТИРОВАТЬ: включены полный UserForm.js
class App extends Component {
// default state object
constructor() {
super();
this.state = {
schemas: []
}
}
componentDidMount() {
axios
.get('/dataschema/list')
.then(response => {
console.log(response)
this.setState({
schemas: response
});
})
.catch(error => console.log(error.response));
}
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">App</h1>
</header>
<LinkButton />
<UserForm schemas={this.state.schemas} />
</div>
);
}
}
Этот запрос успешно возвращает массив схем (строк) (пока только 1) в сообщениях консоли
Response:
{
"data": [
"Phone Record"
]
Как я могу заполнить этот UserForm.js
выпадающий список Phone Record
, который был возвращен запросом получения axios
import React from 'react';
import PropTypes from 'prop-types';
class UserForm extends React.Component {
constructor() {
super();
this.state = {schemas: []};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.data});
}
handleSubmit(event) {
alert('The dataschema you picked is: ' + this.state.schemas);
event.preventDefault();
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>
Pick the dataschema to describe your data file:
<select value={this.state.value} onChange={this.handleChange}>
{
(schemas && schemas.length > 0) && schemas.map((schema) => {
return (<option value="${schema.value}"> {schema.name}</option>);
})
}
</select>
</label>
</form>
</div>
);
}
}
export default UserForm;