如果我使用 Redux Toolkit 和 RTK-Query,需要 thunk 吗?
Need for thunks if I use Redux Toolkit and RTK-Query?
我正在使用 Redux 工具包 (RTK) 和 Redux 工具包查询 (RTK-Query)。
在任何情况下仍然使用 thunks
是否是最佳实践、必要的或建议的,还是我应该将所有逻辑移至组件中? (如下面的 handleLogin()
)
const Login = () => {
const dispatch = useDispatch()
const [formState, setFormState] = useState({ name: '', password: '' })
const [login, { isLoading }] = useLoginMutation()
const { push } = useHistory()
const handleLogin = async () => {
try {
const user = await login(formState).unwrap()
dispatch(setCredentials(user));
} catch (e) {
console.error(e)
}
}
return (
<div>
<input type="text" name="name" placeholder="name" />
<input type="password" name="password" placeholder="password" />
<button onClick={handleLogin}>Login {isLoading ? '...' : ''}</button>
</div>
)
}
export default Login
正如我们在the RTK Query docs
中特别提到的
RTK Query is a powerful data fetching and caching tool. It is designed to simplify common cases for loading data in a web application, eliminating the need to hand-write data fetching & caching logic yourself.
如果您愿意,仍然欢迎您使用其他方法编写额外的逻辑,但 RTKQ 的目标之一是 API 定义可以完全取代编写任何 thunk 或其他方法的需要手动异步逻辑。
我正在使用 Redux 工具包 (RTK) 和 Redux 工具包查询 (RTK-Query)。
在任何情况下仍然使用 thunks
是否是最佳实践、必要的或建议的,还是我应该将所有逻辑移至组件中? (如下面的 handleLogin()
)
const Login = () => {
const dispatch = useDispatch()
const [formState, setFormState] = useState({ name: '', password: '' })
const [login, { isLoading }] = useLoginMutation()
const { push } = useHistory()
const handleLogin = async () => {
try {
const user = await login(formState).unwrap()
dispatch(setCredentials(user));
} catch (e) {
console.error(e)
}
}
return (
<div>
<input type="text" name="name" placeholder="name" />
<input type="password" name="password" placeholder="password" />
<button onClick={handleLogin}>Login {isLoading ? '...' : ''}</button>
</div>
)
}
export default Login
正如我们在the RTK Query docs
中特别提到的RTK Query is a powerful data fetching and caching tool. It is designed to simplify common cases for loading data in a web application, eliminating the need to hand-write data fetching & caching logic yourself.
如果您愿意,仍然欢迎您使用其他方法编写额外的逻辑,但 RTKQ 的目标之一是 API 定义可以完全取代编写任何 thunk 或其他方法的需要手动异步逻辑。