如何将值传递给react-router-relay中的根查询

时间:2015-09-30 07:57:45

标签: react-router relayjs react-router-relay

假设我在带有react-router-relay项目的中继中有以下根查询:

export default {
  calc: () => Relay.QL`query queryType ($number: String) { auth (number: $number) }`,
}

$number的初始值来自服务器,就像一个隐藏的输入,我想在我对服务器的第一个查询中使用这个数字。如何使用当前的react-router-relay API将$number传递给我的查询?这不是queryParamstateParam

1 个答案:

答案 0 :(得分:2)

您应该可以执行以下操作:

import {createHistory} from 'history';
import React from 'react';
import ReactDOM from 'react-dom';
import {Route, Router} from 'react-router-relay';
import MyComponent from './components/MyComponent';
import MyComponentQueries from './routes/MyComponentQueries';

function addAuthParam(params, route) {
  return {
    ...params,
    number: 'SECRET',
  }; 
}

ReactDOM.render(
  <Router
    history={createHistory()}
    createElement={ReactRouterRelay.createElement}>
    <Route
      component={MyComponent}
      path="/thing/:id"
      prepareParams={addAuthParam}
      queries={MyComponentQueries}
    />
  </Router>,
  document.getElementById('relay-root')
);
在v0.6.2中的react-router-relay中添加了

prepareParams。上面的语法也适用于那个或v0.7.0(当前版本)。