首页 > 解决方案 > React Native - 状态钩子更新并重新渲染组件,但没有显示

问题描述

所以这里是代码:

export default () => {
    const [albums, setAlbums] = useState([]);
    useEffect(() => {
        MediaLibrary.getAlbumsAsync().then((tmpAlbums) => {
            setAlbums(tmpAlbums);
        });
    }, []);
    return (
        <View>
            {albums && (
                <FlatList
                    data={albums}
                    renderItem={({ item }) => {
                        <Text>{item.title}</Text>;
                    }}
                />
            )}
        </View>
    );
};

我确定状态更新,因为我记录了它并且它已更新,我已经拥有权限并且为了简单起见我刚刚删除了它。我已经尝试了一切,但组件/屏幕上没有显示任何内容。

标签: reactjsreact-nativereact-native-flatlistuse-state

解决方案


您不返回Text.

要么做

{albums && (
   <FlatList
     data={albums}
     renderItem={({ item }) => {
       return (<Text>{item.title}</Text>)
     }}
   />
 )}

或者

{albums && (
  <FlatList
    data={albums}
    renderItem={({ item }) => (
      <Text>{item.title}</Text>)
    )}
   />
 )}

推荐阅读