在以下情况下,我应该如何处理可能的错误:
export async function testAction(data) {
try {
let response = await axios.get(`https://jsonplaceholder.typicode.com/todos/1`);
return {
type: 'TEST_ACTION',
payload: response
}
} catch(err) {
// ???
}
}
// 组件中的某处:
<Button onClick={ () => dispatch( testAction() ) }>
Test Stuff
</Button>
或者更好地从组件实际调度,例如:
重构动作创建者:
export async function testAction(data) {
try {
let response = await axios.get(`https://jsonplaceholder.typicode.com/todos/1`);
return response
} catch(err) {
return err
}
}
组件中的某处:
const handleTestAction = () => {
testAction().then(r => dispatch( { type: 'TEST_ACTION', payload: r } ) ).catch( // hadnle errors)
}
<Button onClick={ handleTestAction }>
Test Stuff
</Button>
我知道 redux 风格指南建议使用Action Creators来调度动作,但在这种特殊情况下,我首先调用动作然后使用调度。我应该如何处理它?