ไม่สามารถใช้ useRef แทน componentDidUpdate
Nov 27 2020
ข้อผิดพลาด
Uncaught TypeError: Object (... ) ไม่ใช่ฟังก์ชัน
import { useSelector, useDispatch, useRef } from 'react-redux'
const mounted = useRef();
useEffect(() => {
console.log('mounted', mounted)
console.log('useEffect props:', props)
ฉันมีส่วนประกอบที่ใช้งานได้และพยายามใช้ประโยชน์จาก hooks เพื่อใช้ componentDidUpdate ในฟังก์ชั่น onSubmit ของฉันฉันเริ่มการจัดส่งเพื่อโทรและ API และฉันต้องการดูว่าเปย์โหลดที่เป็นผลลัพธ์ของ API นั้นคืออะไรซึ่งถูกเก็บไว้ใน redux แต่ฉันได้รับข้อผิดพลาดข้างต้น?
ฉันพบคำตอบนี้ซึ่งบอกว่าใช้ useRef เทียบเท่ากับ componentDidUpdate โดยใช้ React hooks
คำตอบ
2 GlenCarpenter Nov 27 2020 at 15:53
mounted.currentคุณควรเข้าถึงเตะของคุณโดยใช้ undefinedเนื่องจากคุณไม่ได้เริ่มต้นมันคุ้มค่าก็จะกลับ
หากคุณกำหนด ref ให้กับองค์ประกอบ JSX คุณจะไม่สามารถเข้าถึงได้จนกว่า DOM จะโหลด ในกรณีนั้นฉันขอแนะนำให้ใช้useLayoutEffecthook เนื่องจากจะไม่ทำงานจนกว่า DOM จะโหลด
2 OrAssayag Nov 27 2020 at 15:52
useRef เป็น React hook เปลี่ยนไป:
import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';