React-Router V4渲染功能中的非lambda

时间:2018-10-04 05:24:03

标签: reactjs typescript react-router

我有一个组件,在使用Route组件进行渲染时需要传递道具。问题在于打字稿在JSX中不允许使用lambda函数,而我只是不知道如何将其重写为允许的函数:

<Route
   key={index}
   exact={true}
   path={item.urlAddress}
   render={() => <DocumentView data={data} />}
/>

我尝试过此方法,但仍被认为是lambda,不知道为什么:

render={function() { <DocumentView /> }}

有人知道如何重写吗?

编辑:我知道这是一个小问题,我正在寻找根据ts-lint标准编写此文件的正确方法。我知道我可以添加规则例外,但是我想知道如何以“适当的”方式执行此操作,而不是每次遇到棉绒问题时都不要添加例外

1 个答案:

答案 0 :(得分:5)

您可以更改tslint规则,以允许在渲染中使用箭头功能。但是,由于您询问了编写上述内容的另一种方法。它会写成

renderDocument = (props) => {
   return <DocumentView data={data} {...props}/>
}
render() {
    return (
        <Route
           key={index}
           exact={true}
           path={item.urlAddress}
           render={this.renderDocument}
        />
    )
}