Reactjs 如何基于函数调用重新呈现react组件?
我试图从RESTAPI调用中呈现列表,并在添加、删除或更新新项时重新呈现它Reactjs 如何基于函数调用重新呈现react组件?,reactjs,Reactjs,我试图从RESTAPI调用中呈现列表,并在添加、删除或更新新项时重新呈现它 import React, { useState, useEffect } from 'react'; import axios from 'axios'; function App() { const [data, setData] = useState({}); useEffect(() => { const fetchData = async () => { const re
import React, { useState, useEffect } from 'react';
import axios from 'axios';
function App() {
const [data, setData] = useState({});
useEffect(() => {
const fetchData = async () => {
const result = await axios(
'https://hn.algolia.com/api/v1',
);
setData(result.data);
};
fetchData();
}, [fetchData]);
const handleClick = () => {
fetchData();
}
return (
<button onClick={handleClick}>Go</button>
);
}
export default App;
import React,{useState,useffect}来自“React”;
从“axios”导入axios;
函数App(){
const[data,setData]=useState({});
useffect(()=>{
const fetchData=async()=>{
常量结果=等待axios(
'https://hn.algolia.com/api/v1',
);
setData(result.data);
};
fetchData();
},[fetchData]);
常量handleClick=()=>{
fetchData();
}
返回(
去
);
}
导出默认应用程序;
当组件加载时,它执行useffect
方法,但当我单击“Go”按钮时,它不工作。
有没有办法执行RESTAPI调用并刷新对象列表
谢谢。您可以创建一个state属性,并在onClick处理程序中进行切换。然后在useEffect的依赖项数组中使用此属性
import React,{useState,useffect}来自“React”;
从“axios”导入axios;
函数App(){
const[data,setData]=useState({});
const[refetch,setRefetch]=useState(true);
useffect(()=>{
const fetchData=async()=>{
常量结果=等待axios(
'https://hn.algolia.com/api/v1',
);
setData(result.data);
};
fetchData();
},[refetch]);
常量handleClick=()=>{
设置重新蚀刻(!重新蚀刻);
}
返回(
去
);
}
导出默认应用程序;
将数据
变量添加到数组中,该变量用于检查useffect
方法中发生的变化。只要数据
变量发生更改,它就应该重新呈现
useEffect(() => {
const fetchData = async () => {
const result = await axios(
'https://hn.algolia.com/api/v1',
);
setData(result.data);
};
fetchData();
}, [fetchData, data]);
首先,您使用了错误的端点。请测试您的端点,它使用id工作。您不需要useEffect通过单击事件加载数据
import React, { useState } from "react";
import ReactDOM from "react-dom";
import axios from "axios";
const fetchData = async () => {
const result = await axios("https://hn.algolia.com/api/v1/items/1");
return result.data;
};
function App() {
const [data, setData] = useState(null);
const handleClick = async () => {
const x = await fetchData();
setData(x);
};
return (
<>
<button onClick={handleClick}>Go</button>
{data && data.id}
</>
);
}
export default App;
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
import React,{useState}来自“React”;
从“react dom”导入react dom;
从“axios”导入axios;
const fetchData=async()=>{
常量结果=等待轴(“https://hn.algolia.com/api/v1/items/1");
返回结果数据;
};
函数App(){
const[data,setData]=useState(null);
const handleClick=async()=>{
const x=等待获取数据();
setData(x);
};
返回(
去
{data&&data.id}
);
}
导出默认应用程序;
const rootElement=document.getElementById(“根”);
ReactDOM.render(