Không thể sử dụng useRef làm thay thế componentDidUpdate
lỗi
Uncaught TypeError: Object (...) không phải là một hàm
import { useSelector, useDispatch, useRef } from 'react-redux'
const mounted = useRef();
useEffect(() => {
console.log('mounted', mounted)
console.log('useEffect props:', props)
Tôi có một thành phần chức năng và đang cố gắng tận dụng các hook để sử dụng componentDidUpdate, trong hàm onSubmit của tôi, tôi kích hoạt một công văn để gọi và API và tôi cần xem trọng tải kết quả của API đó, được lưu trữ trong redux. Nhưng tôi gặp lỗi trên?
Tôi đã tìm thấy câu trả lời này được cho là sử dụng useRef Tương đương với componentDidUpdate bằng cách sử dụng React hooks
Trả lời
Bạn nên truy cập ref của bạn bằng cách sử dụng mounted.current. Vì bạn không khởi tạo nó một giá trị, nó sẽ trả về undefined.
Nếu bạn đang gán ref của mình cho một phần tử JSX, bạn sẽ không thể truy cập nó cho đến khi DOM tải xong. Trong trường hợp đó, tôi khuyên bạn nên sử dụng useLayoutEffecthook, vì nó sẽ không chạy cho đến khi DOM được tải.
useRef là một React hook. Thay đổi thành:
import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';