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