簡體   English   中英

React Functional Component props 不更新

[英]React Functional Component props does not update

我使用一個功能組件來顯示這些 div。 我還有另一個組件,它使用 displayCounter 組件並跟蹤狀態。 我的狀態是一個計數器,我有一些按鈕可以增加和減少計數器。

假設狀態是

狀態 = { 計數器:0 }

Example 1 的 div 不顯示計數器的變化。 但是示例 2 的 div 工作正常嗎?

所以當我點擊增加按鈕 div 1 總是顯示 0,但 div 2 工作正常。

有人可以向我解釋原因嗎?

import React from 'react';

const displayCounter = (props) => {
    return (
        <div>
            <div> Example 1: {props.value} </div>
            <div> Example 2: <span>{props.value}</span> </div>
        </div>
    );
}

export default displayCounter;

如果您想發布迷你應用程序的完整代碼,請添加評論。

import React, { Component } from 'react';

import CounterControl from '../../components/CounterControl/CounterControl';
import DisplayCounter from '../../components/DisplayCounter';

class Counter extends Component {
    state = {
        counter: 0
    }

    counterChangedHandler = () => {
        this.setState( ( prevState ) => { return { counter: prevState.counter + 1 } } )
    }

    render () {
        return (
            <div>
                <DisplayCounter value={this.state.counter}/>
                <CounterControl label="Increment" clicked={() => this.counterChangedHandler( 'inc' )} />
            </div>
        );
    }
}

export default Counter;

你不應該使用道具,道具是一種古老的方式,你應該使用這個

import React from 'react';

const displayCounter = ({ counter }) => {
    return (
        <div>
            <div> Example 1: {counter} </div>
            <div> Example 2: <span>{counter}</span> </div>
        </div>
    );
}

export default displayCounter;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM