如何在数据加载完成时使用钩子设置初始状态

问题描述 投票:0回答:1

我正在尝试将full_name设置为我的初始状态,但是我不确定。当我将数据发送到我的props.userDetailsFetchRequest(id, data);时,我无法检查这一点,仅当数据加载完成时,如何设置此初始状态。

 const UserDetails = props => {
            const classes = useStyles();

            const { userDetailsLoading } = props;
            const { full_name } = props.userDetails;

            console.log('loading:', userDetailsLoading)
            console.log('full name:', full_name)

            const [name, setName] = useState(full name); <-------- I want this inicialize with
                                                                         michele sena riveira  

          function handleSubmit(e) {
            e.preventDefault();

            const { id } = props.userDetails;

            const data = {
                "full_name": name,
            }

            props.userDetailsFetchRequest(id, data); <--- I'm sending this request to my saga
    and I'm getting full_name as undefined.
        }

enter image description here


佐贺

function* userDetailsEditFetchRequest({ id, data }) {
       console.log("full_name in saga:",data)
}

enter image description here

reactjs redux redux-saga saga
1个回答
1
投票

您将为此使用useEffect

useEffect(() => {
    setName(full_name)
},[full_name]

现在,每当full_name更改时,效果将使用道具的值更新您的状态值。

但是最好尽可能直接使用道具,以消除任何可能的差异

© www.soinside.com 2019 - 2024. All rights reserved.