首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将道具传递给function路由器4中的嵌套路由。TypeError: render不是一个函数

将道具传递给function路由器4中的嵌套路由。TypeError: render不是一个函数
EN

Stack Overflow用户
提问于 2017-11-03 18:05:38
回答 1查看 431关注 0票数 0

我正在尝试创建像这样的嵌套路由,遵循this,所以回答

代码语言:javascript
复制
/--Home
|--campaigns
   |--campaigns/:cid

Index.js

代码语言:javascript
复制
ReactDOM.render(
    <BrowserRouter>
        <App />
    </BrowserRouter>
    ,
    document.getElementById('root'));
registerServiceWorker();

App.js

代码语言:javascript
复制
class App extends Component {
  render() {
    return (
        <div>
          <Route exact path="/" render={(props) => <Home foo="bar" {...props}/>}/>
          <Route path="/campaigns" render={(props) => <Campaigns foo="bar" {...props}/>}/>
        </div>
    );
  }
}

Home.js

代码语言:javascript
复制
const Home = () => (
    <div>
        Home
    </div>
)

Campaigns.js

代码语言:javascript
复制
const Campaigns = () => (
    <div>
        <Route exact path="/campaigns" render={<div>Campaigns</div>}/>
        <Route path="/campaigns/:cid" render={(props) => <Campaign {...props} foo="bar"/>}/>
    </div>
)

Campaign.js

代码语言:javascript
复制
const Campaign = () => (
    <div>
        <Route path="/campaigns/:cid" render={<div>Campaign 1</div>}/>
    </div>
)

我使用该方法,因为我不能使用该方法将道具传递给组件。

当/路由正常工作时,当我浏览到/campaigns时,我得到: TypeError: render不是一个函数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 18:56:19

这个错误是很清楚的。render支柱接受一个函数作为它的值,而不是元素。因此,只需将其改为:

代码语言:javascript
复制
const Campaigns = () => (
    <div>
        <Route exact path="/campaigns" render={() => <div>Campaigns</div>}/>
        <Route path="/campaigns/:cid" render={(props) => <Campaign {...props} foo="bar"/>}/>
    </div>
);

const Campaign = () => (
    <div>
        <Route path="/campaigns/:cid" render={() => <div>Campaign 1</div>}/>
    </div>
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47101989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档