React - API 调用以设置多个状态变量(更好的选择)
React - API Call to set mutliple state variables (Better Alternatives)
我正在学习 React,在此过程中我试图在单个 useEffect
挂钩中设置多个状态变量。我只是想知道,如果我的方法是设置多个状态变量的正确方法。有更好的办法请大家看看指教
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const App = () => {
const reqUrl = 'https://hn.algolia.com/api/v1/search?query=redux'
const initialStateValue = [{ id: 0, value: ' --- Select A State --- ' }];
const [initialJsonData, setInitialJsonData] = useState({ hits: [] });
const [tagTypes, setTagTypes] = useState([]);
const [stateSelected, setStateSelected] = useState(initialStateValue[0].value);
useEffect(() => {
axios(reqUrl).then(result => {
const tagTypeLocal = { ...result.data.hits[0] }
setTagTypes(tagTypeLocal._tags) --> setting the state variable tagTypes
console.log(tagTypeLocal._tags)
setInitialJsonData(result.data) --> setting the state variable initialJsonData
})
}, [])
是的,这是使用 useEffect
挂钩更新多个状态项的可接受实现。
为了解决对您的问题的评论之一,使用多个状态变量非常好,因为它们可能会按照您链接的 CodeSandbox 的建议在不同时间更新。其实这个方法在React docs.
中被推荐
我正在学习 React,在此过程中我试图在单个 useEffect
挂钩中设置多个状态变量。我只是想知道,如果我的方法是设置多个状态变量的正确方法。有更好的办法请大家看看指教
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const App = () => {
const reqUrl = 'https://hn.algolia.com/api/v1/search?query=redux'
const initialStateValue = [{ id: 0, value: ' --- Select A State --- ' }];
const [initialJsonData, setInitialJsonData] = useState({ hits: [] });
const [tagTypes, setTagTypes] = useState([]);
const [stateSelected, setStateSelected] = useState(initialStateValue[0].value);
useEffect(() => {
axios(reqUrl).then(result => {
const tagTypeLocal = { ...result.data.hits[0] }
setTagTypes(tagTypeLocal._tags) --> setting the state variable tagTypes
console.log(tagTypeLocal._tags)
setInitialJsonData(result.data) --> setting the state variable initialJsonData
})
}, [])
是的,这是使用 useEffect
挂钩更新多个状态项的可接受实现。
为了解决对您的问题的评论之一,使用多个状态变量非常好,因为它们可能会按照您链接的 CodeSandbox 的建议在不同时间更新。其实这个方法在React docs.
中被推荐