File tree Expand file tree Collapse file tree 7 files changed +89
-60
lines changed
Expand file tree Collapse file tree 7 files changed +89
-60
lines changed Original file line number Diff line number Diff line change @@ -6,26 +6,29 @@ import Global from '../global';
66import conf from '../config' ;
77import { useSelector , useDispatch } from 'react-redux'
88// 登录
9- export const login = ( { config = { } , update, remember } ) => {
9+ export const login = ( { mutationKey } ) => {
10+ const dispatch = useDispatch ( )
1011 const mutation = useMutation ( {
12+ mutationKey,
1113 mutationFn : userLogin ,
1214 onSuccess : async data => {
1315 if ( data ?. token && data ?. data ) {
1416 await AsyncStorage . setItem ( 'token' , data . token ) ;
15- if ( remember ) {
16- await AsyncStorage . setItem ( 'cachLoginName' , formData . loginName ) ;
17- await AsyncStorage . setItem ( 'cachPassword' , formData . password ) ;
18- }
1917 await AsyncStorage . setItem ( 'userData' , JSON . stringify ( data . data ) ) ;
20- update ( { token : data . token , userData : data . data } ) ;
18+ dispatch ( {
19+ type : "global/update" ,
20+ payload : {
21+ token : data . token ,
22+ userData : JSON . stringify ( data . data )
23+ }
24+ } )
2125 if ( Global . navigation ) {
2226 Global . navigation . replace ( 'Tab' ) ;
2327 }
2428 } else if ( data && data . message ) {
2529 Alert . alert ( `Login failed - ${ data . error } ` , data . message ) ;
2630 }
2731 } ,
28- ...config ,
2932 } ) ;
3033 return mutation ;
3134} ;
@@ -65,7 +68,7 @@ export const useAuthToken = () => {
6568 dispatch ( {
6669 type : "global/update" ,
6770 payload : {
68- authState : true ,
71+ authState : true ,
6972 token : null
7073 }
7174 } )
Original file line number Diff line number Diff line change @@ -11,23 +11,17 @@ import { login } from '../../hooks/users'
1111
1212const SigninScreen = ( {
1313 navigation,
14- update,
1514} ) => {
1615 const [ store , setStore ] = useState ( {
1716 hostType : '' ,
18- remember : false ,
1917 formData : {
2018 username : 'admin' ,
2119 password : 'admin!' ,
2220 } ,
2321 } )
24- const { hostType, remember , formData } = store
22+ const { hostType, formData } = store
2523
26- const { mutate, isLoading } = login ( {
27- update,
28- formData,
29- remember
30- } )
24+ const { mutate, isLoading } = login ( { mutationKey : [ 'userLogin' , formData ] } )
3125
3226 useEffect ( ( ) => {
3327 if ( navigation && Global ) {
@@ -46,7 +40,7 @@ const SigninScreen = ({
4640 }
4741 } ;
4842
49- const loginIn = ( ) => mutate ?. ( { ... formData } )
43+ const loginIn = ( ) => mutate ?. ( formData )
5044
5145 return (
5246 < SafeAreaView style = { styles . block } >
@@ -104,12 +98,7 @@ const SigninScreen = ({
10498 ) ;
10599}
106100
107- export default connect (
108- ( { } ) => ( { } ) ,
109- ( { global } ) => ( {
110- update : global . update
111- } ) ,
112- ) ( SigninScreen ) ;
101+ export default SigninScreen
113102
114103const styles = StyleSheet . create ( {
115104 block : {
Original file line number Diff line number Diff line change 11import React , { Component } from 'react' ;
22import { SafeAreaView } from 'react-native' ;
33
4- export default class MyScreen extends Component {
5- render ( ) {
6- return (
7- < SafeAreaView > </ SafeAreaView >
8- ) ;
9- }
4+ export default function MyScreen ( ) {
5+ return (
6+ < SafeAreaView > </ SafeAreaView >
7+ ) ;
108}
Original file line number Diff line number Diff line change @@ -131,6 +131,55 @@ git commit -m "Keep calm and commit"
131131 └──@react-native-community/masked-view
132132```
133133
134+ ## 目录结构
135+ ```
136+ ├── Gemfile
137+ ├── README.md
138+ ├── __tests__
139+ │ └── App-test.js
140+ ├── _bundle
141+ │ └── config
142+ ├── _node-version
143+ ├── android
144+ │ ├── app
145+ │ ├── build.gradle
146+ │ ├── gradle
147+ │ ├── gradle.properties
148+ │ ├── gradlew
149+ │ ├── gradlew.bat
150+ │ └── settings.gradle
151+ ├── app.json
152+ ├── babel.config.js
153+ ├── index.js
154+ ├── ios
155+ │ ├── HelloWorld
156+ │ ├── HelloWorld.xcodeproj
157+ │ ├── HelloWorld.xcworkspace
158+ │ ├── HelloWorldTests
159+ │ ├── Podfile
160+ │ ├── Podfile.lock
161+ │ ├── Pods
162+ │ ├── _xcode.env
163+ │ └── build
164+ ├── jsconfig.json
165+ ├── metro.config.js
166+ ├── mocker
167+ │ ├── index.js
168+ │ └── user.mock.js
169+ ├── package.json
170+ └── src
171+ ├── App.js
172+ ├── components
173+ ├── config.js
174+ ├── global.js
175+ ├── hooks
176+ ├── models
177+ ├── pages
178+ ├── routes
179+ ├── services
180+ └── utils
181+ ```
182+
134183## Links
135184
136185- [ React Native upgrade helper] ( https://react-native-community.github.io/upgrade-helper/ )
Original file line number Diff line number Diff line change @@ -6,26 +6,29 @@ import Global from '../global';
66import conf from '../config' ;
77import { useSelector , useDispatch } from 'react-redux'
88// 登录
9- export const login = ( { config = { } , update, remember } ) => {
9+ export const login = ( { mutationKey } ) => {
10+ const dispatch = useDispatch ( )
1011 const mutation = useMutation ( {
12+ mutationKey,
1113 mutationFn : userLogin ,
1214 onSuccess : async data => {
1315 if ( data ?. token && data ?. data ) {
1416 await AsyncStorage . setItem ( 'token' , data . token ) ;
15- if ( remember ) {
16- await AsyncStorage . setItem ( 'cachLoginName' , formData . loginName ) ;
17- await AsyncStorage . setItem ( 'cachPassword' , formData . password ) ;
18- }
1917 await AsyncStorage . setItem ( 'userData' , JSON . stringify ( data . data ) ) ;
20- update ( { token : data . token , userData : data . data } ) ;
18+ dispatch ( {
19+ type : "global/update" ,
20+ payload : {
21+ token : data . token ,
22+ userData : JSON . stringify ( data . data )
23+ }
24+ } )
2125 if ( Global . navigation ) {
2226 Global . navigation . replace ( 'Tab' ) ;
2327 }
2428 } else if ( data && data . message ) {
2529 Alert . alert ( `Login failed - ${ data . error } ` , data . message ) ;
2630 }
2731 } ,
28- ...config ,
2932 } ) ;
3033 return mutation ;
3134} ;
@@ -65,7 +68,7 @@ export const useAuthToken = () => {
6568 dispatch ( {
6669 type : "global/update" ,
6770 payload : {
68- authState : true ,
71+ authState : true ,
6972 token : null
7073 }
7174 } )
Original file line number Diff line number Diff line change @@ -7,27 +7,21 @@ import Global from '../../global';
77import Footer from '../../components/Footer' ;
88import { logoLight } from '../../components/icons/signin' ;
99import conf from '../../config' ;
10- import { useLogin } from '../../hooks/users'
10+ import { login } from '../../hooks/users'
1111
1212const SigninScreen = ( {
1313 navigation,
14- update,
1514} ) => {
1615 const [ store , setStore ] = useState ( {
1716 hostType : '' ,
18- remember : false ,
1917 formData : {
2018 username : 'admin' ,
2119 password : 'admin!' ,
2220 } ,
2321 } )
24- const { hostType, remember , formData } = store
22+ const { hostType, formData } = store
2523
26- const { mutate, isLoading } = useLogin ( {
27- update,
28- formData,
29- remember
30- } )
24+ const { mutate, isLoading } = login ( { mutationKey : [ 'userLogin' , formData ] } )
3125
3226 useEffect ( ( ) => {
3327 if ( navigation && Global ) {
@@ -46,7 +40,7 @@ const SigninScreen = ({
4640 }
4741 } ;
4842
49- const loginIn = ( ) => mutate ?. ( { ... formData } )
43+ const loginIn = ( ) => mutate ?. ( formData )
5044
5145 return (
5246 < SafeAreaView style = { styles . block } >
@@ -104,12 +98,7 @@ const SigninScreen = ({
10498 ) ;
10599}
106100
107- export default connect (
108- ( { } ) => ( { } ) ,
109- ( { global } ) => ( {
110- update : global . update
111- } ) ,
112- ) ( SigninScreen ) ;
101+ export default SigninScreen
113102
114103const styles = StyleSheet . create ( {
115104 block : {
Original file line number Diff line number Diff line change 11import React , { Component } from 'react' ;
2- import { View , SafeAreaView } from 'react-native' ;
2+ import { SafeAreaView } from 'react-native' ;
33
4- export default class MyScreen extends Component {
5- render ( ) {
6- return (
7- < SafeAreaView > </ SafeAreaView >
8- ) ;
9- }
4+ export default function MyScreen ( ) {
5+ return (
6+ < SafeAreaView > </ SafeAreaView >
7+ ) ;
108}
You can’t perform that action at this time.
0 commit comments