#reactjs #react-native #api #axios
Вопрос:
export class Diet extends Component {
constructor(props) {
super(props);
this.state = {
data: [],
};
}
updateSearch = (e) => {
axios
.get(
`https://api.spoonacular.com/food/products/searchapiKey{1234}amp;query=${this.state.data}amp;number=100`
)
.then((res) => {
this.setState({ data: res.data });
});
};
render()
return(
<SearchBar
placeholder="Search Food..."
onChangeText={this.updateSearch}
value={data}
/>
<List style={{ paddingTop: hp("2%") }}>
<TouchableOpacity>
{data.parsed.map(({ type }) => (
<Text>{this.state.type.products.title}</Text>
))}
</TouchableOpacity>
</List>
Привет, я пытаюсь получить данные из базы данных Spoonacular с помощью axios
, я пытаюсь искать еду с SearchBar
помощью и отображать содержимое в List
, я новичок в программировании, и я не очень уверен в том , что я делаю, когда я запускаю код, который он мне подсказывает undefined is not an object (evaultaing 'data.parsed.map')
, также это правильный способ использовать SearchBar
для получения данных.
Ссылка на документацию: https://spoonacular.com/food-api/docs#Search-Grocery-Products
Ответ №1:
вы просто пропускаете это.состояние.данные
<TouchableOpacity>
{this.state.data.map(({ type }) => (
<Text>{this.state.type.products.title}</Text>
))}
</TouchableOpacity>