Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 父级组件中的JSX作为字符串_Javascript_Reactjs - Fatal编程技术网

Javascript 父级组件中的JSX作为字符串

Javascript 父级组件中的JSX作为字符串,javascript,reactjs,Javascript,Reactjs,我有一个组件,它从5开始倒计时,并在JSX返回中返回当前计数 注意:通常我会使用一个函数并使用返回值,但是这很麻烦,因为组件使用React钩子并在调用函数时导致错误 我的倒计时部分是 import React, { useEffect, useState } from 'react'; const countdownSeconds = 5; const Countdown = () => { const [timing, setTiming] = useState(true);

我有一个组件,它从
5
开始倒计时,并在JSX返回中返回当前计数

注意:通常我会使用一个函数并使用返回值,但是这很麻烦,因为组件使用React钩子并在调用函数时导致错误

我的倒计时部分是

import React, { useEffect, useState } from 'react';

const countdownSeconds = 5;
const Countdown = () => {
  const [timing, setTiming] = useState(true);
  const [second, setSecond] = useState(countdownSeconds);
  useEffect(() => {
    let interval: number;
    if (timing) {
      interval = setInterval(() => {
        setSecond(preSecond => {
          if (preSecond <= 1) {
            setTiming(false);
            clearInterval(interval);
            return countdownSeconds;
          } else {
            return preSecond - 1;
          }
        });
      }, 1000);
    }
    return () => clearInterval(interval);
  }, [timing]);

  return <>${timing ? second : 0}</>;
};

export default Countdown;
这显然会返回
[object object]

如何将
${timing?second:0}
作为字符串传递给


如果可能的话,我不想使用上下文。

您必须像这样更新代码

<Typography
  text={
    <>
      <span>countdown is</span> <Countdown /> <span>seconds</span>
    </>
  }
/>


希望这对你有用

不客气!
<Typography
  text={
    <>
      <span>countdown is</span> <Countdown /> <span>seconds</span>
    </>
  }
/>