我试图在一个功能组件中进行 API 调用,该组件是一个反应钩子,并根据结果重新渲染组件的内容。这是代码:
调用 API 的组件-
function IntegrationDownshift() {
render(
<Paper square>
{setResults(inputValue).map(
(suggestion, index) =>
renderSuggestion({
suggestion,
index,
itemProps: getItemProps({
item:
suggestion.userFullName
}),
highlightedIndex,
selectedItem
})
)}
</Paper>
);
}
这里是setResults
功能:
function setResults(textInput) {
const [data, setData] = useState({ users: [] });
searchUser(textInput).then(result => {
useEffect(() => {
searchUser(textInput).then(result => {
setData(result.users);
});
}, []);
});
}
我正在尝试获取状态数据并根据数据重新渲染我的组件。
这里searchUser
位于调用外部 API 的操作中。
- The
searchUser
正在调用操作并成功获取数据,但我不确定为什么状态会更新 - 我收到以下错误 -
React Hook“useState”在函数“setResults”中被调用,它是
既不是 React 函数组件,也不是自定义 React Hook 函数
反应钩子/钩子规则
- 作为第二个替代方案,我尝试从 searchUser 返回值并在下面的函数中访问它,但仍然没有用
我是钩子新手,任何帮助/指示都会有所帮助。
您需要将第一个字母大写 setResults => SetResults
function SetResults(textInput) {
const [data, setData] = useState({ users: [] });
searchUser(textInput).then(result => {
useEffect(() => {
searchUser(textInput).then(result => {
setData(result.users);
});
}, []);
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)