ReactJS中没有渲染方法的渲染组件

时间:2018-11-28 18:25:15

标签: reactjs meteor react-router

我对React和Meteor有一个疑问。在Meteor App中,我使用React Router进行电子邮件验证Accounts.verifyEmail,在这里我无法将参数传递给组件。在组件中,我只想执行功能而不渲染任何内容。但是我收到错误消息Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.,可以向我解释如何解决此问题?

routes.js

import { Meteor } from 'meteor/meteor';
import VerifyEmail from '../imports/ui/verifyEmail'

const routes = () => (
  <Router>
    <Switch>
        <Route name="confirm-account" path="/confirm-account/:token" render = {(props)=><VerifyEmail {...props}/>}/>                 
    </Switch>
  </Router>    
)

export default routes

../ imports / ui / verifyEmail.js

const VerifyEmail = ({match:{params}}) => {
  let token = params.token
  Accounts.verifyEmail(token, function(error){
    if(error){
        console.log(error)
    } else {
        console.log('Works')
    }
  })
};

导出默认的VerifyEmail

2 个答案:

答案 0 :(得分:1)

这实际上是否应该是一个组件还是有争议的,因为它实际上并不呈现任何东西,但是如果您确实需要将其作为一个组件,则收到的错误消息实际上是在告诉您如何解决此问题问题。

  

渲染未返回任何内容。这通常意味着缺少return语句。或者,要不显示任何内容,请返回null。

您可以从组件返回null以不呈现任何内容。这就是方法。

Thread01

答案 1 :(得分:0)

组件需要具有渲染功能。如果VerifyEmail不是应该呈现的东西,而只是运行逻辑的东西,也许它应该只是函数而不是组件。