我想通过 App.js 中的按钮获取用户的输入,从站点 API 获取一些信息(数据 id),然后使用获取的信息(id)通过将 id 发送到来向用户显示所需的信息Population.js 但它无法正常工作。我认为 componentDidUpdate 可能需要一些参数,因为我必须发送的获取请求需要用户输入才能工作。此外,我认为我的代码甚至在用户按下按钮之前就正在获取信息,因为控制台没有显示正确的信息我需要的 id(它显示 4-5 个值,但全部都不正确)。如果我对值进行硬编码,它就可以正常工作。基本上,我想通过按钮获取输入,使用该输入来获取某些内容,然后使用获取的内容来获取其他内容,然后显示获取的信息。请帮助我。我是 React 的初学者。这是APP.js
import React from 'react';
import './App.css';
import Population from './Population.js';
class App extends React.Component {
constructor(props) {
super(props);
this.state = { name: "" ,info : {},formSubmit: false};
this.handleInput = this.handleInput.bind(this);
this.handleFormSubmit = this.handleFormSubmit.bind(this);
}
handleInput (event) {
console.log(event.target.value);
}
handleFormSubmit (event) {
event.preventDefault();
console.log("the value " + event.target.value);
this.setState({formSubmit: true,name : event.target.value});
}
componentDidMount(){//the value property needs to be fetched from user
fetch(`https://wft-geo-db.p.rapidapi.com/v1/geo/cities?namePrefix=${value}`, {
"method": "GET",
"headers": {
"x-rapidapi-key": "c4ab967692mshc65dd5c6e10a987p1790bejsn81ea7b831444",
"x-rapidapi-host": "wft-geo-db.p.rapidapi.com"
}
})
.then(response => response.json())
.then(data => {
const newInfo = data.data;
const newName = newInfo[0].wikiDataId;
const newState = Object.assign({},this.state,{
info : newInfo,
name : newName
});
this.setState(newState);
console.log("The sent code " + this.state.name);
})
.catch(err => {
console.error(err);
});
}
慕斯709654
有只小跳蛙
相关分类