我对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
答案 0 :(得分:1)
这实际上是否应该是一个组件还是有争议的,因为它实际上并不呈现任何东西,但是如果您确实需要将其作为一个组件,则收到的错误消息实际上是在告诉您如何解决此问题问题。
渲染未返回任何内容。这通常意味着缺少return语句。或者,要不显示任何内容,请返回null。
您可以从组件返回null以不呈现任何内容。这就是方法。
Thread01
答案 1 :(得分:0)
组件需要具有渲染功能。如果VerifyEmail不是应该呈现的东西,而只是运行逻辑的东西,也许它应该只是函数而不是组件。