使用TypeScript进行反应:将数字变量传递给子组件

时间:2018-06-29 00:56:37

标签: reactjs typescript

我试图将一个数字变量传递给组件,但是React似乎将其转换为字符串。

此代码:

interface Props {
  variable: number
  literal: number
}

const Parent = () => {
  const num = 2
  return <Child literal={1} variable={num}/>
}

const Child: React.SFC<Props> = (props) => {
  console.log(typeof props.variable)
  console.log(typeof props.literal)
  return <div/>
}

ReactDOM.render(<Parent/>, document.querySelector('#root'))

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>

将打印:

string
number

当变量传递给变量时,如何纠缠React以保留其类型?

2 个答案:

答案 0 :(得分:1)

如果需要整数而不是string,可以使用本机javascript方法更改Variable Type,在这种情况下,您可以从字符串中获取整数

  const num_integer =  parseInt(num);

然后您就有整数

答案 1 :(得分:0)

我做了这样的事情

type Props = {
  literal: number
  variable: number
}

function Child(props: Props): JSX.Element {
  console.log(typeof props.literal)
  console.log(typeof props.variable)

  return <div />
}

function Parent(): JSX.Element {
  const num: number = 2

  return (
    <Child literal={1} variable={num}/>
  )
}

const rootElement = document.getElementById("root");
render(<Parent />, rootElement);

codesandbox

中检查控制台