亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 React Component 類和函數組件沒有相同的行為?

為什么 React Component 類和函數組件沒有相同的行為?

互換的青春 2023-06-29 15:49:02
我正在使用 React 17,我想知道為什么以下組件的行為不一樣。當使用 React 組件類時,方法內的 props 會被更新,而使用功能組件時,它們不會更新。使用 React.Component 類(可見 props 在 check 方法內更新)class Clock extends React.Component {    constructor(props) {        super(props);    }    check() {        console.log(this.props.visible);    }    componentDidMount() {        this.timerID = setInterval(            () => this.check(),            5000        );    }    componentWillUnmount() {        clearInterval(this.timerID);    }    render() {        return (            <div />        );    }}使用帶鉤子的函數(檢查方法內未更新可見道具) function Comp(props) { // contains visible attr (false by default)    const check = () => {        console.log(props.visible); // stays as the default value when Comp mounted    };    useEffect(() => {        const timerId = setInterval(() => {            check();        }, 5000);        return () => clearInterval(timerId);    }, []);    return <div />;}有人有想法嗎?
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

需要將其傳遞到 useEffect 函數的數組中,取消注釋 App 組件中的行并從 useEffect 中刪除可見,您將看到狀態實際上在父級中從 true 變為 false,但在子級中卻沒有。



查看完整回答
反對 回復 2023-06-29
  • 1 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號