代码之家  ›  专栏  ›  技术社区  ›  Prometheus

从函数传递道具?反应

  •  0
  • Prometheus  · 技术社区  · 6 年前

    编辑:

    我已经编辑了这个问题,以便更清楚地说明:

    所以通常可以在render()函数中传递道具,如下所示:

    render(){
    
     return(
      <div>
       <ExampleStatelessComponent message={this.state.message}
      </div>
     )
    }
    

    然后,可以通过props.message将消息与组件内的道具一起使用。

    这也可以在函数内部完成吗?例如,如果我不想呈现ExampleStatelessComponent,但要传递道具给它呢?我可以使用一个函数(例如componentDidMount)将道具传递给无状态组件吗?

    componentDidMount(){
    
     <ExampleStatelessComponent message={this.state.message}
    
    }
    

    这可能吗?希望这能澄清一些事情。谢谢大家!

    1 回复  |  直到 6 年前
        1
  •  2
  •   ztadic91    6 年前

    可以传递和呈现无状态函数,但在调用父组件的呈现函数时,您没有在父组件的呈现函数中使用无状态函数 onClick .

    此外,您不会从statelss函数返回任何内容。

    一个有效的例子是:

    class App extends Component {
      state = {
        hello: 'HelloWorld',
        isChildVisible: false,
      }
    
      onClickFunction = () => {
        this.setState({isChildVisible: true})
      }
    
      render() {
        return (
          <div>
            <h3 onClick={this.onClickFunction}> Placeholder </h3>
            {
              this.state.isChildVisible &&
              <ExampleStateless message={this.state.message} />
            }
          </div >
        );
      }
    }
    
    const ExampleStateless = (props) => {
      return (
        <div>{props.message}</div>
      );
    }
    

    关于无状态函数的更多信息是 here