【问题标题】:I am getting an error when using react and redux to get values via my database使用 react 和 redux 通过我的数据库获取值时出现错误
【发布时间】:2024-04-12 07:25:02
【问题描述】:

这是错误!在服务器端显示。

TypeError: 无法读取未定义的属性“first_name”

而且前端组件的值也没有变化。

这里是代码

const [firstName,changeName] = useState("");
    const [username,changeUsername] = useState("");
    const user = useSelector(state => state.User);
    const [id,changeId] = useState(user.id);
    
React.useEffect(()=>{
     axios.get(url+id).then(function(response){
                                   console.log("First Name");
                                   console.log(id);
                                   changeName(response.data[0].first_name);
                           });},[]);

get 方法没有错误。我在实现此代码之前检查了它们。谁能帮我解决这个问题?

【问题讨论】:

    标签: reactjs express redux


    【解决方案1】:

    您错过了将用户状态作为依赖项添加到 useEffect,您的效果不会获得更新的值。

    试试这个:

    const [firstName,changeName] = useState("");
    const [username,changeUsername] = useState("");
    const user = useSelector(state => state.User);
    const [id,changeId] = useState(user.id);
    
    React.useEffect(()=>{
    axios.get(url+user.id).then(function(response){
                                   console.log("First Name");
                                   console.log(id);
                                   changeName(response.data[0].first_name);
     });},[user]);
    

    【讨论】:

    • 很高兴为您提供帮助:)
    最近更新 更多