Reactjs 如何在useEffect中的操作调用后填充状态?

Reactjs 如何在useEffect中的操作调用后填充状态?,reactjs,react-hooks,Reactjs,React Hooks,我试图在调用检索单个对象数据的操作后填充状态。我想直接将这些数据存储在该州 useEffect(() => { getProduct(id); }, [getProduct]); const [formData, setFormData] = useState({}); 我试着这样储存: const ProductEdit = ({getProduct, updateProduct, id, products}) => { useEffect(()

我试图在调用检索单个对象数据的操作后填充状态。我想直接将这些数据存储在该州

useEffect(() => {
        getProduct(id);
    }, [getProduct]);

const [formData, setFormData] = useState({});
我试着这样储存:

const ProductEdit = ({getProduct, updateProduct, id, products}) => {
    useEffect(() => {
        getProduct(id);
    }, [getProduct]);

    const [formData, setFormData] = useState({
        name: '',
        quantity: '',
        price: '',
        description: '',
        category: '',
        isImportant: ''
    });

    const {name, quantity, price, description} = formData;

    products.product && setFormData(products.product);

您需要使用
useffect
hook来设置状态变量

constproductedit=({getProduct,updateProduct,id,products})=>{
useffect(()=>{
获取产品(id);
},[getProduct]);
常量[formData,setFormData]=useState({
名称:“”,
数量:“”,
价格:'',
说明:“”,
类别:“”,
I重要:“”
});
常量{名称、数量、价格、说明}=formData;
//此挂钩仅在“产品”更改时触发
useffect(()=>{
products.product&&setFormData(products.product);
},[产品];

}
您的代码在哪里执行
products.product&&setFormData(products.product)
?在useState@zohaibijaz之后的函数中为什么要在render中设置状态变量?为什么不共享更多的代码以提供更好的效果understanding@ZohaibIjaz我编辑了问题中的代码