Компонент рендеринга без метода рендеринга в ReactJS

У меня есть один вопрос по 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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
3 458
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Компоненты должны иметь функцию рендеринга. Если 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;
};

Другие вопросы по теме