繁体   English   中英

我收到此错误 >> 渲染未返回任何内容。 这通常意味着缺少 return 语句。 或者,不渲染任何内容,返回 null

[英]I got this this error >> Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null

如果 data.alarmMode === EMERGENCY,我想渲染 Modal 组件,但是,我无法渲染任何内容并收到此错误。 我已尝试解决此问题,但无法解决此问题。 我不知道为什么 React 无法渲染 Modal 组件。

 return (

                <Modal key={hash} hash={hash} data={alarmData[hash]} onClickAlarmOff={onClickAlarmOff} clockMode={clockMode} onClickCloseModal={onClickCloseModal} />
              )  

如果

import React, { useState } from 'react';
import CurrentTimeBox from './CurrentTimeBox';
import AlarmList from './AlarmList';
import AddAlarm from './AddAlarm';
import styles from './ClockBox.module.css';
import ModalEvent from '../containers/ModalEvent';
import { EMERGENCY, NIGHT } from '../constants';
import Modal from '../components/Modal';
import ClockModeBox from './ClockModeBox';
const ClockBox = ({ timeString, onClickCloseModal, makeModalvisible, currentTime, clockMode, modal, alarmData, onClickAlarmOn, onClickAlarmOff, ClockModeFunctionLists }) => {
  return (
    <div className={styles.ClockBox}>
      <CurrentTimeBox currentTime={currentTime} />
      <ClockModeBox ClockModeFunctionLists={ClockModeFunctionLists} clockMode={clockMode}/>
      <div className={styles.AlarmLists}>
        {Object.keys(alarmData).length > 1 && alarmData.dataLists.map((hash) =>{
            const data = alarmData[hash]
          return (
            <AlarmList key={hash} hash={hash} data={data} onClickAlarmOn={onClickAlarmOn} onClickAlarmOff={onClickAlarmOff}/>
          )
        })
        }
      </div>
      <AddAlarm />
      {timeString.length > 0 && Object.keys(alarmData).length > 1 ? alarmData.dataLists.map((hash) => {
        const data = alarmData[hash]
        if (data.time === timeString && data.on) {
          if (clockMode === NIGHT) {
            if (data.alarmMode === EMERGENCY) {
              makeModalvisible();
              return (

                <Modal key={hash} hash={hash} data={alarmData[hash]} onClickAlarmOff={onClickAlarmOff} clockMode={clockMode} onClickCloseModal={onClickCloseModal} />
              )   
            } else {
              return null;
            }
          }

          makeModalvisible();
          // if (modal) {
            return (
              <Modal key={hash} hash={hash} data={alarmData[hash]} onClickAlarmOff={onClickAlarmOff} clockMode={clockMode} onClickCloseModal={onClickCloseModal} />
            )
          // }
        }
      }) : null
      }
    </div>
  )

};

export default ClockBox;

更新代码

  return (
    <div className={styles.ClockBox}>
      <CurrentTimeBox currentTime={currentTime} />
      <ClockModeBox ClockModeFunctionLists={ClockModeFunctionLists} clockMode={clockMode}/>
      <div className={styles.AlarmLists}>
        {Object.keys(alarmData).length > 1 && alarmData.dataLists.map((hash) =>{
            const data = alarmData[hash]
          return (
            <AlarmList key={hash} hash={hash} data={data} onClickAlarmOn={onClickAlarmOn} onClickAlarmOff={onClickAlarmOff}/>
          )
        })
        }
      </div>
      <AddAlarm />
      {timeString.length > 0 && Object.keys(alarmData).length > 1 ? alarmData.dataLists.map((hash) => {
        const data = alarmData[hash]
        if (data.time === timeString && data.on) {
          debugger;
          if (clockMode === NIGHT) {
            if (data.alarmMode === EMERGENCY) {
              makeModalvisible();
              return (

                <Modal key={hash} hash={hash} data={alarmData[hash]} onClickAlarmOff={onClickAlarmOff} clockMode={clockMode} onClickCloseModal={onClickCloseModal} />
              )   
            } else {
              return null;
            }
          }

          makeModalvisible();
          // if (modal) {
            return (
              <Modal key={hash} hash={hash} data={alarmData[hash]} onClickAlarmOff={onClickAlarmOff} clockMode={clockMode} onClickCloseModal={onClickCloseModal} />
            )
          // }
        } else {
          return null;
        }
      }) : null
      }
    </div>
  )

模态组件

import React from 'react';
import { VIBRATION, NORMAL, NIGHT } from '../constants';
import styles from "./Modal.module.css";

const Modal = ({ onClickCloseModal, data, clockMode, hash, onClickAlarmOff }) => {

  const SOUND_EFFECT = 'https://pp.netclipart.com/pp/s/35-354079_jpg-transparent-library-hotel-front-desk-service-bell.png';
  const VIBRATION_EFFECT = 'https://st2.depositphotos.com/4520249/7558/v/950/depositphotos_75586693-stock-illustration-vibration-mode-phone-icon.jpg';
  let imgComponent = null;
  switch(clockMode) {
    case NORMAL:
      imgComponent = <img src={SOUND_EFFECT} />
      break;
    case VIBRATION:
      imgComponent = <img width="200px" height="200px" src={VIBRATION_EFFECT} />
      break;
    default:
      return;
  }


  return (
    <div className={styles.Modal} >
      <div className={styles.ModalOverLay}></div>
        <div className={styles.ModalContent}>
          {imgComponent}
          <p>{data.label}</p>
          <button className={styles.CloseButton} onClick={() => {
            onClickCloseModal();
            onClickAlarmOff(hash);
            console.log(33333)
          }}>close</button>
      </div>
    </div>
  )
}

export default Modal;

如果 clockMode 不是“紧急状态”,则组件会正确呈现 Modal 组件。 但是,我想要做的是在 if (data.alarmMode === EMERGENCY) 的情况下渲染 Modal 组件

我不知道为什么即使我使用 return 语句它也无法在这种情况下呈现。

更新

const modalOn = () => ({ type: MODAL_ON });
makeModalvisible: () => dispatch(modalOn())

mpodalOn 没有问题,我检查了模态状态已更改我调试并且调试器进入if (data.alarmMode === EMERGENCY)问题是 ClockBox 组件无法呈现 Modal 组件......如果我使用返回语句

我认为这可能是因为在以下 if 语句之后没有 else 语句: if (data.time === timeString && data.on) 所以当这个要求不满足时,React 将不知道要渲染什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:渲染没有返回任何内容。 这通常意味着缺少 return 语句。 或者,不渲染任何内容,返回 null Home(…):渲染未返回任何内容。 这通常意味着缺少return语句。 或者,不渲染任何内容,则返回null unboundStoryFn(…):渲染没有返回任何内容。 这通常意味着缺少 return 语句。 或者,什么也不渲染,返回 null 出现此错误的学校项目:渲染未返回任何内容。 这通常意味着缺少 return 语句。 或者,不渲染任何内容,返回 null 反应错误:渲染没有返回任何内容。 这通常意味着缺少 return 语句。 或者,什么也不渲染,返回 null 错误:StateProvider(...):渲染没有返回任何内容。 这通常意味着缺少 return 语句。 或者,什么也不渲染,返回 null 错误:聊天(...):渲染没有返回任何内容。 这通常意味着缺少 return 语句。 或者,不渲染任何内容,返回 null Index.js 错误:UserForm(…):没有从渲染返回。 这通常意味着缺少 return 语句。 或者,什么也不渲染,返回 null React - 错误:应用程序(...):渲染没有返回任何内容。 这通常意味着缺少返回语句。 或者,不渲染任何内容,返回 null 错误:RenderComments(...) 渲染没有返回任何内容。 这通常意味着缺少返回语句。 或者,不渲染任何内容,返回 null
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM