ReactWheels11-04form组件

超难bug解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
errors = {
username:['e1','e2'],
password:['e3','e4']
}

// 错误可能是异步的于是,=》 Promise | string
errors = {
username:['e1',p1,'e2',p2],
password:['e3',p3,'e4',p4]
}

// 利用 Promise.reject('e1')
// 将错误简化,都归类于 Promise
errors = {
username:[p1,p2],
password:[p3,p4]
}

// 我们的目标是
// 把异步的错误
errors = {
username:[p1,p2],
password:[p3,p4]
}

// 异步要等所有的结果, 所以只能使用 Promise.all([])
// 但是 Promise.all 接受的是一个数组
// 从 [p1,p2] 转化为 ['e1','e2']
errors = {
username:['e1','e2'],
password:['e3','e4']
}
  • step01流程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
errors = {
u:[p1,p2],
p:[p3,p4]
}

// (关联起来)变成
[
[
['u',p1],['u',p2]
],
[
['p',p3],['p',p4]
]
]

// 拍平
[['u',p1],['u',p2],['p',p3],['p',p4]]

// 挨个遍历 ,信息整合
arr = [
Promise ['u',p1],
Promise ['u',p2],
Promise ['p',p3],
Promise ['p',p4]
]
最后调用 Promise.all(arr)


每个结果都是 Promise ['u',p1]
errors = {
username:['e1','e2'],
password:['e3','e4']
}