Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 如何将变量数据传递给createFragementContainer_Javascript_Reactjs_Graphql_Relayjs_Relay - Fatal编程技术网

Javascript 如何将变量数据传递给createFragementContainer

Javascript 如何将变量数据传递给createFragementContainer,javascript,reactjs,graphql,relayjs,relay,Javascript,Reactjs,Graphql,Relayjs,Relay,我正在使用Relay Modern构建我的组件,我希望将一个变量传递给片段,以便它可以用作查询中的GraphQL参数 以下是我使用的代码: class Test extends Component { static propTypes = { userId: PropTypes.string.isRequired } render = () => { return ( <p>User Id: {

我正在使用Relay Modern构建我的组件,我希望将一个变量传递给片段,以便它可以用作查询中的GraphQL参数

以下是我使用的代码:

class Test extends Component {
    static propTypes = {
       userId: PropTypes.string.isRequired
    }

    render = () => {

        return (

            <p>User Id: {this.props.userId}</p>
            <p>User name: {this.props.viewer.name}
        );
    }
}

export default createFragmentContainer(
    Test,
    graphql`
        fragment Test_viewer on Viewer {
            user(id: $userId) { <<=== The $userId must be the this.props.userId passed
                id
                name
            }
        }
    `
);

如何使上述代码正常工作?

您需要在查询级别传递变量:

const UserQuery = graphql` 
  query AdminQuery($userId: ID!) {
    viewer {
      ...Test_viewer
    }
  }
`;
元素上使用此查询时,还将以prop形式传递变量:

<QueryRenderer
  query={UserQuery}
  variables={{
    userId: 'USER_ID',
  }}
  // ... others props
/>

<QueryRenderer
  query={UserQuery}
  variables={{
    userId: 'USER_ID',
  }}
  // ... others props
/>