Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs React中的到达类方法(类内函数)_Reactjs_Function_Class - Fatal编程技术网

Reactjs React中的到达类方法(类内函数)

Reactjs React中的到达类方法(类内函数),reactjs,function,class,Reactjs,Function,Class,各位。 我正试图写一个简单的程序,它会导致“嗨”这个词出现在屏幕上。 这是密码 import React from 'react'; import ReactDOM from 'react-dom'; class Button extends React.Component { Hi = () => { return <h1>Hi</h1> } state = { showSayHi: false }

各位。 我正试图写一个简单的程序,它会导致“嗨”这个词出现在屏幕上。 这是密码

import React from 'react';
import ReactDOM from 'react-dom';

class Button extends React.Component {
    Hi = () => {
        return <h1>Hi</h1>
    }
    state = {
        showSayHi: false
    }
    sayHi = () => {                                                    
        this.setState({                                               
            showSayHi: true
        }) ;                                                                          
    }  
    render() {
        const { showSayHi } = this.state;       
        return (
            <div>
               {this.state.showSayHi ? Hi() : null}
                <button type="submit" onClick={this.sayHi}>Press me</button>
            </div>
        )
    }
}
export default Button;
ReactDOM.render(<Button />, document.getElementById('root'));
从“React”导入React;
从“react dom”导入react dom;
类按钮扩展了React.Component{
嗨=()=>{
回电
}
状态={
showSayHi:错
}
sayHi=()=>{
这个.setState({
showSayHi:是的
}) ;                                                                          
}  
render(){
const{showSayHi}=this.state;
返回(
{this.state.showSayHi?Hi():null}
按我
)
}
}
导出默认按钮;
ReactDOM.render(,document.getElementById('root'));
有一个版本,Hi函数不是全局定义的,但我不知道如何全局定义函数。 问题似乎在于Hi函数或它在三元运算符中的调用。
有人能帮我把这件事做好吗?

你可以通过类组件中的this.methodName访问你的方法。
{this.state.showSayHi?this.Hi():null}

将Hi定义为功能组件

function Hi(props) {
  return(
    <h1>Hi !</h1>
  )
}
功能Hi(道具){
返回(
你好
)
}

若要全局使用此组件,请将此代码移动到文件中,然后通过从文件中导出此代码导入Hi。

您可以通过类组件中的this.methodName访问方法。
{this.state.showSayHi?this.Hi():null}

将Hi定义为功能组件

function Hi(props) {
  return(
    <h1>Hi !</h1>
  )
}
功能Hi(道具){
返回(
你好
)
}

若要全局使用此组件,请将此代码移动到文件中,然后通过从文件中导出此代码导入Hi。

看起来您忘记了此。

在这里:


你好像忘了这个。

在这里:


请把它改成这个.Hi()在这个.state.showSayHi?Hi():null

请在this.state.showSayHi中将其设为.Hi()?Hi():null

如果您只想让Hi显示在屏幕上,则不需要两个组件:

export default class App extends Component {
  state = { showHi: false };

  showHi = () => this.setState({ showHi: !this.state.showHi });

  render() {
    return (
      <div>
        <div>
          {this.state.showHi ? 'Hi' : null}
          <button onClick={this.showHi}>Toggle Hi</button>
        </div>
      </div>
    );
  }
}
导出默认类应用程序扩展组件{
state={showHi:false};
showHi=()=>this.setState({showHi:!this.state.showHi});
render(){
返回(
{this.state.showHi?'Hi':null}
切换Hi
);
}
}

如果您只想让Hi出现在屏幕上,则不需要两个组件:

export default class App extends Component {
  state = { showHi: false };

  showHi = () => this.setState({ showHi: !this.state.showHi });

  render() {
    return (
      <div>
        <div>
          {this.state.showHi ? 'Hi' : null}
          <button onClick={this.showHi}>Toggle Hi</button>
        </div>
      </div>
    );
  }
}
导出默认类应用程序扩展组件{
state={showHi:false};
showHi=()=>this.setState({showHi:!this.state.showHi});
render(){
返回(
{this.state.showHi?'Hi':null}
切换Hi
);
}
}

还有另一个解决方案

您可以保留Hi(),而无需执行以下操作:

{this.state.showSayHi ? Hi() : null}
但是,为了保持这种状态,必须将函数Hi()从类中取出。像这样:

const Hi = () => {
    return <h1>Hi</h1>
}

class Button extends React.Component {
state = {
    showSayHi: false
}
sayHi = () => {                                                    
    this.setState({                                               
        showSayHi: true
    }) ;                                                                          
}  
render() {
    const { showSayHi } = this.state;       
    return (
        <div>
           {this.state.showSayHi ? Hi() : null}
            <button type="submit" onClick={this.sayHi}>Press me</button>
        </div>
    )
}
const Hi=()=>{
回电
}
类按钮扩展了React.Component{
状态={
showSayHi:错
}
sayHi=()=>{
这个.setState({
showSayHi:是的
}) ;                                                                          
}  
render(){
const{showSayHi}=this.state;
返回(
{this.state.showSayHi?Hi():null}
按我
)
}

我不鼓励您这样做(除非您还想在类外使用函数Hi())。我只是想向您展示这个解决方案也可以工作。如果您将它与比较,您将了解单词this在类中是如何工作的。

还有另一个解决方案

您可以保留Hi(),而无需执行以下操作:

{this.state.showSayHi ? Hi() : null}
但是,要保持这种状态,必须将函数Hi()从类中取出。如下所示:

const Hi = () => {
    return <h1>Hi</h1>
}

class Button extends React.Component {
state = {
    showSayHi: false
}
sayHi = () => {                                                    
    this.setState({                                               
        showSayHi: true
    }) ;                                                                          
}  
render() {
    const { showSayHi } = this.state;       
    return (
        <div>
           {this.state.showSayHi ? Hi() : null}
            <button type="submit" onClick={this.sayHi}>Press me</button>
        </div>
    )
}
const Hi=()=>{
回电
}
类按钮扩展了React.Component{
状态={
showSayHi:错
}
sayHi=()=>{
这个.setState({
showSayHi:是的
}) ;                                                                          
}  
render(){
const{showSayHi}=this.state;
返回(
{this.state.showSayHi?Hi():null}
按我
)
}
我不鼓励您这样做(除非您还想在类外使用函数Hi())。我只是想向您展示这个解决方案也可以工作。如果您将它与比较,您将了解单词this在类中是如何工作的