【发布时间】:2021-02-06 19:05:07
【问题描述】:
当我使用 props.match.url 时,它可以正常工作。
import {withTranslation} from 'react-i18next';
function Navbar ({props}) {
return (
<nav className={css.navbar}>
<NavLink exact to={`${props.match.url}`} className={css.link} activeClassName={css.linkActive}>
Calls receive scenario
</NavLink>
<NavLink to={`${props.match.url}/call-tracking`} className={css.link} activeClassName={css.linkActive}>
Tracked numbers
</NavLink>
<NavLink to={`${props.match.url}/greetings`} className={css.link} activeClassName={css.linkActive}>
Greetings
</NavLink>
<NavLink to={`${props.match.url}/sip`} className={css.link} activeClassName={css.linkActive}>
Sip accounts
</NavLink>
</nav>);
}
export default withTranslation()(Navbar);
但是当我添加流类型检查时(我几乎完全确定我做对了),它会记录错误。
import {withTranslation} from 'react-i18next';
type Props = {
t: Function,
match: {
url: string
}
}
function Navbar({t, match}: Props) {
return (
<nav className={css.navbar}>
<NavLink exact to={`${match.url}`} className={css.link} activeClassName={css.linkActive}>
{t('settings.page_vats.page_scenario.navbar_title')}
</NavLink>
<NavLink to={`${match.url}/call-tracking`} className={css.link} activeClassName={css.linkActive}>
Tracked numbers
</NavLink>
<NavLink to={`${match.url}/greetings`} className={css.link} activeClassName={css.linkActive}>
Greetings
</NavLink>
<NavLink to={`${match.url}/sip`} className={css.link} activeClassName={css.linkActive}>
Sip accounts
</NavLink>
</nav>);
}
export default withTranslation()(Navbar);
错误看起来是这样的:
Uncaught RuntimeTypeError: Props.match must be an object
Expected: {
url: string;
}
Actual Value: undefined
Actual Type: void
【问题讨论】:
标签: javascript reactjs typescript flowtype