【发布时间】:2020-06-05 03:38:55
【问题描述】:
我是 React 和 Redux 的新手。我想问一下为什么当我尝试使用它或在控制台中显示它时在 setState 中设置一个对象是未定义的。
import React, { useEffect, useState } from 'react';
import { Link } from 'react-router-dom';
import { Row, Col } from "react-bootstrap";
import axios from 'axios';
import ProductImage from './Sections/ProductImage';
import ProductInfo from './Sections/ProductInfo';
function DetailProduct (props){
const productId = props.match.params.productId
const [Product, setProduct] = useState()
useEffect(()=>{
axios.get('http://localhost:5000/products/'+productId)
.then(response =>{
setProduct(response.data)
console.log('state '+Product._id)
})
}, [])
return (
<div className="postPage" style={{width: '100%', padding: '3rem 4rem'}}>
<div style={{display:'flex',justifyContent:'center'}}>
<h1>{Product._id}</h1>
</div>
<br/>
<Row gutter={[16, 16]}>
<Col lg={12} xs={24}>
<ProductImage />
</Col>
<Col lg={12} xs={24}>
<ProductInfo />
</Col>
</Row>
</div>
)
}
export default DetailProduct
当页面加载时,它说 Product 是未定义的,即使它假设有一个对象。当我 console.log 有什么 response.data 时,它会向我显示产品需要拥有的信息。抱歉英语不好,谢谢。
【问题讨论】:
-
React 中的 setState 是异步函数。这可以提供更多细节stackoverflow.com/questions/36085726/…
标签: reactjs redux react-redux state