Javascript 如何在React中动态使用dispatch?

Javascript 如何在React中动态使用dispatch?,javascript,reactjs,dispatch,Javascript,Reactjs,Dispatch,我有一个下面的代码,我的问题是dispatch正在获取以前的userId参数 流程是我先转到用户列表,然后转到用户信息(显示右侧),但当我返回到用户列表时,再返回到用户信息(它不显示正确的用户ID,而显示上一个) 已更新:我刚刚发现它获取正确,只是内容没有更新 在我的Content.js组件中,我使用useSelector显示切片状态 import { useSelector } from 'react-redux'; const Content = () => { const

我有一个下面的代码,我的问题是
dispatch
正在获取以前的
userId
参数

流程是我先转到用户列表,然后转到用户信息(显示右侧),但当我返回到用户列表时,再返回到用户信息(它不显示正确的用户ID,而显示上一个)


已更新:我刚刚发现它获取正确,只是内容没有更新

在我的Content.js组件中,我使用
useSelector
显示切片状态

import { useSelector } from 'react-redux';

const Content = () => {
    const { userDetails } = useSelector((state) => state.users);
    
    return (
        <div className="bg-basic-400 m-px-10 p-px-16">
            <p>{userDetails.title}</p>
            //more codes here
        </div>
    )
}
从'react redux'导入{useSelector};
常量内容=()=>{
const{userDetails}=useSelector((state)=>state.users);
返回(
{userDetails.title}

//这里有更多代码 ) }
您需要添加任何相关变量作为useEffect中的依赖项。如果使用空的
[]
,它只运行一次。您需要在状态中保存userId

const [usersId, setUsersId] = useState(useParams().id);
useEffect(() => {
        console.log('->->usersId', userId); // it logs exact id
        dispatch(fetchUserInfo(usersId)).then((res) => { // it fetch previous id
            // some codes here
        });
    }, [usersId, fetchUserInfo]);

仍然不起作用。不过这是个打字错误。不是新闻ID而是用户ID。编辑了描述我的歉意您需要使用useState来存储usersId的userIDtry
useState
,但没有区别。请参阅我在编辑的回答中添加状态的方式我相信您还需要将
fetchUserInfo
添加为UseEffect中的依赖项。返回是什么意思?你为什么把承诺和派遣混为一谈?这是一件事吗?此外,如果您能显示HTML/JSX,将有助于将问题可视化better@iwaduarte我更新了描述,长官。它获取正确,只是我的内容组件中的
useSelector
没有更新。
const [usersId, setUsersId] = useState(useParams().id);
useEffect(() => {
        console.log('->->usersId', userId); // it logs exact id
        dispatch(fetchUserInfo(usersId)).then((res) => { // it fetch previous id
            // some codes here
        });
    }, [usersId, fetchUserInfo]);