如果我使用 Redux Toolkit 和 RTK-Query,需要 thunk 吗?

Posted

技术标签:

【中文标题】如果我使用 Redux Toolkit 和 RTK-Query,需要 thunk 吗?【英文标题】:Need for thunks if I use Redux Toolkit and RTK-Query? 【发布时间】:2021-11-06 05:04:21 【问题描述】:

我正在使用 Redux Toolkit (RTK) 和 Redux Toolkit Query (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

【问题讨论】:

【参考方案1】:

正如我们在the RTK Query docs中特别说的那样

RTK Query 是一个强大的数据获取和缓存工具。它旨在简化在 Web 应用程序中加载数据的常见情况,无需自己手动编写数据获取和缓存逻辑。

如果您愿意,仍然欢迎您使用其他方法编写额外的逻辑,但 RTKQ 的目标之一是 API 定义可以完全取代手动编写任何 thunk 或其他异步逻辑的需要。

【讨论】:

太好了,感谢您的确认。我是 Redux 和 RTK 的新手,不确定我是否遗漏了什么

以上是关于如果我使用 Redux Toolkit 和 RTK-Query,需要 thunk 吗?的主要内容,如果未能解决你的问题,请参考以下文章

为一个大项目迁移到 redux-toolkit

Redux-Toolkit 查询拦截器

Redux Toolkit 查询:从“突变”响应中减少状态

如何在 Redux-toolkit 中使用两个不同的切片?

关于 redux-toolkit redux-saga 的一些问题

在 React-native 中使用 Redux Toolkit 持久化存储