سلام خسته نباشید .
من به یه مشکل برخوردم وقتی وارد یه صفحه از آیتم هایی که برای خرید هستن میشم دو مرتبه درخواست رو به سرور میفرسته و تو صفحه ای که مربوط به اون آیتم هستش دو تا آیتم مشابه میاره آیا راهی هست که بتونم درخواست رو فقط یبار بفرسته؟?؟
این کد صفحه آیتم خرید...
const productPage = () => {
const { id } = useParams()
const [product, setProduct] = useState([])
const { auth, detailProduct } = useSelector(state => state)
const dispatch = useDispatch()
useEffect(() => {
dispatch(getProduct({detailProduct, id, auth}))
if(detailProduct.length > 0){
const newArr = detailProduct.filter(product => product._id === id)
setProduct(newArr)
}
},[detailProduct, dispatch, id, auth])
return (
<div className="product">
<div>
{
product.map(index,item => (
<productCard key={index} product={item} />
))
}</div>
</div>
)
}
export default productPage
کد ریداکس دریافت آیتم
export const getProduct = ({detailProduct, id, auth, token}) => async (dispatch) => {
if(detailProduct.every(procuct => procuct._id !== id)){
try {
const res = await getDataAPI(`procuct/${id}`, token)
dispatch({ type: PRODUCT_TYPES.GET_PRODUCT, payload: res.data.procuct })
} catch (err) {
dispatch({
type: GLOBALTYPES.ALERT,
payload: {error: err.response.data.msg}
})
}
}
}
بک اندو با postman تست زدم درسته فقط یبار میفرسته.
به x کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟