我在获取数据并使用React呈现它时遇到了问题。当我点击返回单个对象的API时,它可以正常工作,但当我查询新闻API时,即使我限制了要返回的文章数量,它也会继续在无限循环中运行。我正在使用useState保存返回数据并使用useEffects获取它。我做错了什么?这是我的代码。
const classes = useStyles();
const [data, setData] = useState({});
const [loading, setLoading] = useState(true);
useEffect(() => {
const getData = async () => {
const url = 'https://gnews.io/api/v4/search?q=malware&lang=en&max=3&token=MY_API_TOKEN'
const res = await fetch(url);
const data = res.json();
console.log(data);
setData(data);
setLoading(false);
};
getData();
})
return (
<div className={classes.root}>
<Grid
container
direction="row"
justifycontent="center"
alignItems="center"
spacing={8}
>
<Grid item xs={12}>
<Paper className={classes.paper1}>
<Typography variant="h5" className={classes.title}>
"This book is dedicated to anyone and everyone who understands that
hacking and learning is a way to live your life, not a day job or
semi-ordered list of instructions found in a thick book." -The Shellcoder's Handbook
</Typography>
</Paper>
</Grid>
<Grid container spacing={2}>
<Grid item xs={4}>
<Paper className={classes.paper2}>
<h1>Title of news article</h1>
<p>news story explination</p>
<p>image</p>
</Paper>
</Grid>
<Grid item xs={4}>
<Paper className={classes.paper2}>
<h1>Title of news article</h1>
<p>news story explination</p>
<p>image</p>
</Paper>
</Grid>
<Grid item xs={4}>
<Paper className={classes.paper2}>
<h1>{data.title}</h1>
<p>news story explination</p>
<p>image</p>
</Paper>
</Grid>
</Grid>
</Grid>
</div>
)
};```
您需要在useffect中添加依赖项。如果只想调用一次getData,可以像这样添加空的依赖项
useEffect(() => {
const getData = async () => {
const url = 'https://gnews.io/api/v4/search?q=malware&lang=en&max=3&token=MY_API_TOKEN'
const res = await fetch(url);
const data = res.json();
console.log(data);
setData(data);
setLoading(false);
};
getData();
}, [])
我在使用useEffect时搜索了很多关于无限循环的帖子,但仍然没有找到答案 在useEffect中,我试图调用get accounts api,当然,我放置了一个空数组,因为我只希望它在渲染后运行一次。但目前我喜欢添加“addAccount”功能。因此,如果我按下add按钮,它就会发送一个post请求。这里是一个问题,我想检查值是否已更改,因此我将值放入第二个参数,即空数组,它会导致无限循环。但
我试图创建的是一个React组件,当prop boxToggle的值为true时,它有条件地呈现,当用户单击exit按钮时,它也返回null。为了实现这一点,我创建了一个名为displayUI的本地useState,并使用if语句(这可能是问题所在,但我无法指出原因)将displayUI指定为true或false(这取决于boxToggle道具和exit按钮的onClick内部)。 但是我在组件中
我想实现一个无限循环数据集 如您所见,这里的主要挑战是方法。如果我在那里放一个足够大的数字,比如1 如果我在那里放一个小数字,比如1或BATCH_SIZE,训练循环中采样的“数据”将定期重复。这不是我想要的,因为我想产生新的数据 我猜过度使用内存的罪魁祸首是堆栈中的某个地方,缓存了一堆东西。随便看看Python的一面,我就不知道在哪里了。 有人能告诉我什么是实现我想要的最好的方法吗?(使用Data
我在使用时遇到一个错误。即使加载页面是新鲜的,没有按下任何按钮,我的按钮onClick事件侦听器激活了,正如我之前在主题中提到的,我的错误: “错误:重新呈现太多。React限制呈现次数以防止无限循环。”
我已经找到了这个已经帮了我的忙,但是在我的代理中添加了这样的标题之后。js公司: 在fetch()中,我还添加了标头以确保其正常工作: 我仍然收到错误:TypeError:“尝试获取资源时出现NetworkError。” <代码>此。setState({contacts:data})应该存储由后端Java程序交付的JSON对象。JSON对象位于localhost:8080/api,只是字符串 我的
我试图使用Bean shell断言从我的JBDC请求采样器中提取结果 我在我的采样器中添加了一个beanshell断言来提取结果,但运行时出现了一个错误。有关守则是: 其中dataFromDB是我的JBDC请求采样器的结果变量名 错误是:断言失败消息:org。阿帕奇。乔芬。util。JMeterException:调用bsh方法时出错:eval