如何在redux thunk中正确使用useSelector和useDispatch



有人可以解释我怎么错了?如何正确使用useSelector和useDispatch以及useEffect中的redux-thunk-async函数。

我的代码输出只返回屏幕上的"用户列表"标题,而不是我期望的用户列表。

代码:

import React, { useEffect } from 'react'
import { useSelector, useDispatch } from 'react-redux'
import { fetchUsers } from '../redux'
function UserContainer() {
const userData = useSelector(state => state.user)
const dispatch = useDispatch()
useEffect(() => {
dispatch(fetchUsers())
},[dispatch])
return userData.loading ? ( <h2>Loading...</h2> ) :
userData.error ? (<h2>{userData.error}</h2>) :
<div>
<h2>User List</h2>
<div>
{ userData && userData.users && userData.users.map(user => <p>{user.name}</p>) }
</div>
</div>
}
export default UserContainer

这里的动作功能:

export const fetchUsers = () =>{
return function(dispatch) {
dispatch(fetchUsersRequest())
axios.get('https://jsonplaceholder.typicode.com/users')
.then(response => {
const users = response.data
dispatch(fetchUsersSuccess(users))
})
.catch(error => {
dispatch(fetchUsersFailure(error.message))
})
}
}

我发现错误!这是一个疏忽。在操作函数I.map((中,不需要的响应:

constusers=response.data.map(user=>user.id(

好吧,这段代码是一个关于如何正确使用useSelector和useDispatch以及redux-thunk的ajax调用的完美例子。

相关内容

  • 没有找到相关文章

最新更新