2015-09-30 15 views
0

假设我有与反应路由器中继项目继电器以下根查询:如何值传递给在反应路由器中继根查询

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

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

+0

看来,这是目前由react-router-relay不支持的 - 有一个[open pull request](https://github.com/relay-tools/react-router-relay/pull/61)来提供通过'prepareVariables'函数支持。 –

回答

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') 
); 

prepareParams在v0.6.2反应路由器中继加入。上面的语法也适用于该版本或v0.7.0(当前版本)。

相关问题