Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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应用程序中修改name属性时出现问题_Javascript_Html_Reactjs_Properties_This - Fatal编程技术网

Javascript 在React应用程序中修改name属性时出现问题

Javascript 在React应用程序中修改name属性时出现问题,javascript,html,reactjs,properties,this,Javascript,Html,Reactjs,Properties,This,我正在尝试更改组件的名称,但我的逻辑都在父组件中,因此无法访问this.props.name 这是我的开始按钮 class StartButton extends React.Component { render(props) { return ( <button onClick={this.props.onClick}>{this.props.name}</button> ) } } 这是我想要使用的逻辑,在He

我正在尝试更改组件的名称,但我的逻辑都在父组件中,因此无法访问this.props.name

这是我的开始按钮

class StartButton extends React.Component {
  render(props) {
      return (
        <button onClick={this.props.onClick}>{this.props.name}</button>
      )
    }
  }
这是我想要使用的逻辑,在Header类中需要它,因为它是由onClick激活的


我知道,这个.name不起作用,但我不确定如何访问name='Start Button'并更改其值。任何帮助都将不胜感激

你不应该像这样想改变道具,你应该尝试使用状态来改变道具。虽然还有其他方法,但我给出了下面这个天真的例子。保持一种状态,并根据它传递你的道具

类应用程序扩展了React.Component{ 状态={ 重新启动:false }; changeToRestartText==>{ this.setState{restart:true}; }; 渲染{ const{restart}=this.state; 回来 这个,handleClick} /> 更改为重新启动 ; } } 类StartButton扩展了React.Component{ 渲染器{ 返回{this.props.name}; } } ReactDOM.render、document.getElementByIdroot;
天哪,非常感谢你。这很有道理。我感谢你的帮助!
  render() {
    return (
      <header>
        <div className="headerContainer">
            <div id="countdown">
              <p>Countdown: <span id="countdownSpan"></span></p>
            </div>
            <div className="flex-item-header">
              <StartButton 
                  name='Start Button'.   <------------------------------
                  onClick={() => this.handleClick()}
              />            
              </div>
            <div>
                <p>Word Count: <span id="noOfWords"></span></p>
            </div>
        </div>
      </header>
    )
  }
}
  changeToRestartText = () => {
    this.name = 'Restart Game'; <---------------------------
  }