我遵循这个tutorial将搜索添加到我的 Expo (React Native) 应用程序。最后一步之后我出现了这个错误:photo.
我应该怎么办?
这是程序的一部分。
这是我的导航屏幕之一,其中有其他屏幕的链接:
function InfoScreen({ navigation }) {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Button title="Go back" onPress={() => navigation.goBack()} />
<View style={styles.container_new}>
<Text style={styles.text}>Basic FlatList Example</Text>
<FlatList
ListHeaderComponent={renderHeader}
...
</View>
)}
/>
</View>
</View>
);
}
教程中的 renderHeader 函数:
function renderHeader() {
return (
...
);
}
教程的一部分(最后步骤)
const [query, setQuery] = useState('');
const [fullData, setFullData] = useState([]);
useEffect(() => {
setIsLoading(true);
fetch(API_ENDPOINT)
.then(response => response.json())
.then(response => {
setData(response.results);
// ADD THIS
setFullData(response.results);
setIsLoading(false);
})
.catch(err => {
setIsLoading(false);
setError(err);
});
}, []);
const handleSearch = text => {
const formattedQuery = text.toLowerCase();
const filteredData = filter(fullData, user => {
return contains(user, formattedQuery);
});
setData(filteredData);
setQuery(text);
};
const contains = ({ name, email }, query) => {
const { first, last } = name;
if (first.includes(query) || last.includes(query) || email.includes(query)) {
return true;
}
return false;
};
我们需要完整的上下文组件来查看到底发生了什么,并查看无效的钩子调用在哪里。
最有可能的罪魁祸首是你的处理者之一,比如handleSearch
在渲染期间被调用。您没有共享渲染代码,因此我无法帮助并确定发生这种情况的位置。你能分享更多吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)