2 Star 8 Fork 9

Rojer/网易云tv版

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
App.tsx 2.85 KB
一键复制 编辑 原始数据 按行查看 历史
Rojer 提交于 2022-04-23 14:21 . feat: :boom:使用新框架重构
import React, {useEffect, useState} from 'react';
import Home from './src/pages/Home';
import List from './src/pages/List';
import Music from './src/pages/Music';
import Login from './src/pages/Login';
import My from './src/pages/My';
import Rank from './src/pages/Rank';
import Category from './src/pages/Category';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import {useKeepAwake} from '@unsw-gsbme/react-native-keep-awake';
import GlobalContext from './src/contexts/global';
import BackButton from './src/components/BackButton';
import GlobalPlayer from './src/components/GlobalPlayer';
import {useUser} from './src/hooks/useStores';
const Stack = createStackNavigator<RootStackParamList>();
const optionGeter = (name: string) => {
return {
headerStyle: {
backgroundColor: '#363636',
},
headerTitleStyle: {
color: '#FFFFFF',
},
headerTitle: name,
headerLeft: () => <BackButton />,
};
};
const App = () => {
const [currentPage, setCurrentPage] = useState('Home');
const [pageLastFocus, setPageLastFocus] = useState<Record<string, string>>(
{},
);
const [cruteria, setCruteria] = useState<any[]>([]);
useKeepAwake();
const {loadUserInfo} = useUser();
useEffect(() => {
loadUserInfo();
}, []);
return (
<GlobalContext.Provider
value={{
cruteria,
setCruteria,
page: currentPage,
setPage: setCurrentPage,
pageLastFocus,
setPageLastFocus: (page: string, uuid: string) => {
setPageLastFocus({
...pageLastFocus,
[page]: uuid,
});
},
}}>
<GlobalPlayer />
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Home"
component={Home}
options={{
headerShown: false,
}}
/>
<Stack.Screen
name="List"
component={List}
options={optionGeter('歌曲列表')}
/>
<Stack.Screen
name="Music"
component={Music}
options={{
headerShown: false,
}}
/>
<Stack.Screen
name="Login"
component={Login}
options={optionGeter('登录')}
/>
<Stack.Screen
name="My"
component={My}
options={optionGeter('我的歌单')}
/>
<Stack.Screen
name="Rank"
component={Rank}
options={optionGeter('排行榜')}
/>
<Stack.Screen
name="Category"
component={Category}
options={optionGeter('歌单列表')}
/>
</Stack.Navigator>
</NavigationContainer>
</GlobalContext.Provider>
);
};
export default App;
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/rojerchen/netease-cloud-music-tv-rn.git
git@gitee.com:rojerchen/netease-cloud-music-tv-rn.git
rojerchen
netease-cloud-music-tv-rn
网易云tv版
main

搜索帮助

D67c1975 1850385 1daf7b77 1850385