【发布时间】:2019-11-27 14:05:58
【问题描述】:
我试图在 API 调用后使用useState 设置一个变量,但它不起作用。通过reactotron调试,他做了API调用,但他没有设置变量。
export default function Forecast({ navigation }) {
const [cityData, setCityData] = useState([]);
const idNavigation = navigation.state.params.cityData.woeid;
async function loadCityData(cityID) {
const response = await api.get(`${cityID}`);
setCityData([response]);
console.tron.log(cityData);
}
useEffect(() => {
if (idNavigation) {
loadCityData(idNavigation);
}
return () => {};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [idNavigation]);
return <Text>Forecast Weather</Text>;
}
Forecast.propTypes = {
navigation: PropTypes.shape({
state: PropTypes.object,
}).isRequired,
};
【问题讨论】:
-
console中是否有任何错误?确保您在response中获取数据。 -
代码看起来不错。您能否验证来自 API 的
response是否有一些数据? -
是的,也许是您正在发出的 HTTP 请求。请检查控制台。
-
响应没问题。问题是 setState,它没有设置值。
-
日志错误:可能是未处理的 Promise Rejectior,类型错误:未定义不是对象(正在评估响应数据)
标签: reactjs react-native react-hooks