【发布时间】:2020-07-24 10:09:51
【问题描述】:
我观看了一个 Youtube 视频,并制作了自己的食谱应用程序。我是 React.js 的初学者,我已经解决了这个问题大约 2 天。似乎我无法将我的状态值传递给 useEffect 挂钩。这是我的代码示例。错误说
“React Hook useEffect 缺少依赖项:'query'。要么包含它,要么删除依赖项数组”,每次我在输入框中键入它都会触发 useEffect 挂钩。谢谢您,非常感谢您的帮助。
const [recipes, setRecipes] = useState([]);
const [search, setSearch] = useState('');
const [query, setQuery] = useState('steak');
const updateSearch = e => {
setSearch(e.target.value);
console.log(search)
}
const getSearch = e => {
e.preventDefault();
setQuery(search);
}
useEffect(() => { // error Is from the Query variable
const GetRecipe = async () => {
const APP_ID = "3834705e";
const APP_KEY = "c23e9514f82c2440abf54b21edd4c3dc";
const res = await fetch(`https://api.edamam.com/search?q=${query}&app_id=${APP_ID}&app_key=${APP_KEY}`);
const data = await res.json();
setRecipes(data.hits);
}
GetRecipe();
},[getSearch]) //this triggers everytime I typed in the input box which is not it is supposed to
return(
<div className='recipelist'>
<form onSubmit={getSearch}>
<input type="search" onChange={updateSearch}/>
<button type='submit'>submit</button>
</form>
【问题讨论】:
标签: javascript reactjs api react-hooks