Skip to content

Commit 84c2c7d

Browse files
committed
fix: 删除登陆hooks多余代码 & 文档增加目录结构
1 parent 0b4abad commit 84c2c7d

File tree

7 files changed

+89
-60
lines changed

7 files changed

+89
-60
lines changed

HelloWorld/src/hooks/users.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,29 @@ import Global from '../global';
66
import conf from '../config';
77
import { 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
})

HelloWorld/src/pages/SignIn/index.js

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,17 @@ import { login } from '../../hooks/users'
1111

1212
const 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

114103
const styles = StyleSheet.create({
115104
block: {
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import React, { Component } from 'react';
22
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
}

template/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff 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/)

template/template/src/hooks/users.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,29 @@ import Global from '../global';
66
import conf from '../config';
77
import { 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
})

template/template/src/pages/SignIn/index.js

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,21 @@ import Global from '../../global';
77
import Footer from '../../components/Footer';
88
import { logoLight } from '../../components/icons/signin';
99
import conf from '../../config';
10-
import { useLogin } from '../../hooks/users'
10+
import { login } from '../../hooks/users'
1111

1212
const 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

114103
const styles = StyleSheet.create({
115104
block: {
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import 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
}

0 commit comments

Comments
 (0)