当前位置:  开发笔记 > 编程语言 > 正文

RelayJS:如何通过props设置initialVariables

如何解决《RelayJS:如何通过props设置initialVariables》经验,为你挑选了1个好方法。



1> Michelle Til..:

我承认我对Relay一无所知,但message传递给Echo它的属性似乎正在影响它(或以其他方式影响它).我做了以下更改:

    将传递的道具名称更改为Echo:

    
    

    更改属性名称componentDidMount:

    componentDidMount() {
      let {relay, defaultMessage} = this.props; 
    
      relay.setVariables({
        message: defaultMessage
      });
    }
    

以下是完整的源代码(以及指向工作示例的链接):

class Echo extends React.Component {
  componentDidMount() {
    let {relay, defaultMessage} = this.props; 

    relay.setVariables({
      message: defaultMessage
    });
  }

  render() {
    let name = '';
    if (this.props.echo) {
      name = this.props.echo.name;
    }

    return (
      
  • Message: {name}
  • ); } } Echo = Relay.createContainer(Echo, { initialVariables: { message: "" }, fragments: { echo: () => Relay.QL` fragment on Echo { name(message: $message) } `, }, }); class EchoApp extends React.Component { render() { return
    ; } } EchoApp = Relay.createContainer(EchoApp, { fragments: { viewer: () => Relay.QL` fragment on Viewer { echo { ${Echo.getFragment('echo')} }, } `, }, }); class EchoRoute extends Relay.Route { static routeName = 'Home'; static queries = { viewer: (Component) => Relay.QL` query { viewer { ${Component.getFragment('viewer')} }, } `, }; } ReactDOM.render( , mountNode );

    推荐阅读
    oDavid_仔o_880
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有