У меня есть один вопрос по React и Meteor. В приложении Meteor я проверяю электронную почту Accounts.verifyEmail с помощью React Router, и здесь у меня проблема с передачей параметров компоненту. В компоненте я хотел бы выполнить только функцию, ничего не визуализируя. Но у меня появляется ошибка 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.info(error)
} else {
console.info('Works')
}
})
};
экспорт по умолчанию VerifyEmail





Компоненты должны иметь функцию рендеринга. Если VerifyEmail - это не то, что нужно отображать, а всего лишь то, что запускает логику, возможно, это должна быть просто функция, а не компонент.
Вопрос о том, должен ли он быть на самом деле компонентом, остается спорным, поскольку он на самом деле ничего не отображает, но если вам действительно нужно, чтобы он был компонентом, полученное вами сообщение об ошибке на самом деле говорит вам, как можно решить эту проблему.
Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.
Вы можете вернуть null из своего компонента, чтобы ничего не отображать. Вот как это сделать.
const VerifyEmail = ({match:{params}}) => {
let token = params.token
Accounts.verifyEmail(token, function(error){
if (error){
console.info(error)
} else {
console.info('Works')
}
})
return null;
};