什么...... {}和任何反应一样?

时间:2018-06-18 05:37:57

标签: react-router material-ui

我无法将to传递给react-router-dom的Tab元素中material-ui core的链接组件。

我终于想出了这个解决方案:

import * as React from 'react';
import Tabs from '@material-ui/core/Tabs';
import Tab from '@material-ui/core/Tab';
import { Link } from 'react-router-dom';

interface Props { 
  title?: string;
}
interface State {
   value: number;
}

class NavButtons extends React.Component<Props, State>  {
   constructor(props: Props) {
      super(props);
      this.state = { value: 0 };
   }

   public handleOnChange = (event: any, value: number) => {
      this.setState({ value })
   }

   public render() {

      const {value} = this.state

      return (
        <Tabs value={value} onChange={this.handleOnChange} >
          <Tab label="Home" component={Link} {...{to:"/"} as any} />
          <Tab label="Contact" component={Link} {...{to:"/contact/"} as any} />
        </Tabs>
      )
   }
}

export default NavButtons

唯一的问题是,我似乎无法找出...{} as any在材料文档中的作用或反应。

有人可以向我解释一下吗?我看到很多React程序员都在使用它,但我不知道它究竟做了什么。

1 个答案:

答案 0 :(得分:1)

typescript. what is mean: (this as any)

看起来像是TypeScript语法。添加SourceData:=dataAddress可能会删除as any的类型检查,因此不会引起任何警告/错误。