Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React功能组件道具不更新_Javascript_Reactjs - Fatal编程技术网

Javascript React功能组件道具不更新

Javascript React功能组件道具不更新,javascript,reactjs,Javascript,Reactjs,我使用一个功能组件来显示这些div。 我还有另一个组件,它使用displayCounter组件并跟踪状态。 我的状态是计数器,我有一些按钮来增加和减少计数器 让我们说,国家是 状态={ 柜台:0 } 示例1中的div不显示计数器的更改。 但是示例2的div工作正常吗 所以当我点击增加按钮时,div1总是显示0,但是div2工作正常 谁能给我解释一下原因吗 import React from 'react'; const displayCounter = (props) => {

我使用一个功能组件来显示这些div。 我还有另一个组件,它使用displayCounter组件并跟踪状态。 我的状态是计数器,我有一些按钮来增加和减少计数器

让我们说,国家是

状态={ 柜台:0 }

示例1中的div不显示计数器的更改。 但是示例2的div工作正常吗

所以当我点击增加按钮时,div1总是显示0,但是div2工作正常

谁能给我解释一下原因吗

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;
从“React”导入React;
常量显示计数器=(道具)=>{
返回(
示例1:{props.value}
示例2:{props.value}
);
}
导出默认显示计数器;
如果要发布迷你应用程序的完整代码,请添加注释

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,{Component}来自'React';
从“../../components/CounterControl/CounterControl”导入CounterControl;
从“../../components/DisplayCounter”导入DisplayCounter;
类计数器扩展组件{
状态={
柜台:0
}
counterChangedHandler=()=>{
this.setState((prevState)=>{return{counter:prevState.counter+1}})
}
渲染(){
返回(
this.counterChangedHandler('inc')}/>
);
}
}
导出默认计数器;

你不应该使用道具,道具是一种古老的方式,你应该使用它

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;
从“React”导入React;
常量displayCounter=({counter})=>{
返回(
示例1:{counter}
示例2:{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;
从“React”导入React;
常量displayCounter=({counter})=>{
返回(
示例1:{counter}
示例2:{counter}
);
}
导出默认显示计数器;

如何更新状态?我不确定我是否遵守了。如果你做了一个在线的沙盒演示,那将非常有帮助。@Tomas counterChangedHandler=()=>{this.setState((prevState)=>{return{counter:prevState.counter+1}}}}我看不出为什么“示例1”和“示例2”都是
{props.value}时会显示不同的东西
:如何更新状态?我不确定我是否遵循。如果你做了一个在线的沙盒演示,那将非常有帮助。@Tomas counterChangedHandler=()=>{this.setState((prevState)=>{return{counter:prevState.counter+1}}}}我看不出为什么“示例1”和“示例2”都是
{props.value}时会显示不同的东西
:您使用的是道具,您只是将它们用于解构。欢迎使用SO!你知道,OP的密码似乎没有被破解。他们发布了一个沙盒演示。它对我有用,对你有用吗@雅各布斯米特:你什么意思?@ManolisP。只是说梅斯还在使用道具,他们只是被摧毁了。看看对象的解构:@JacobSmit所以它需要道具,只有在我理解正确的情况下才保留反道具?你在使用道具,你只是在解构中使用它们。欢迎来到so!你知道,OP的密码似乎没有被破解。他们发布了一个沙盒演示。它对我有用,对你有用吗@雅各布斯米特:你什么意思?@ManolisP。只是说梅斯还在使用道具,他们只是被摧毁了。看看对象的解构:@JacobSmit,所以它会拿走道具,只有在我理解正确的情况下才会保留反道具?