我试图在单击按钮或菜单项时将用户重定向到另一个页面。不幸的是,onClick函数只在运行时起作用,在实际单击时不起作用,我不知道为什么。
这是我的功能
const redirectCreateContact = (index) => {
history.push({
state: {category:index},
pathname:"/apps/contacts/new/"
});
return <Redirect to={{
pathname: '/apps/contacts/new/',
}}/>;
}
function ContactsHeader(props)
{
return (
<div className="flex flex-1 items-center justify-between p-8 sm:p-24">
<div className="flex flex-shrink items-center sm:w-224">
<Hidden lgUp>
<IconButton
onClick={(ev) => {
props.pageLayout.current.toggleLeftSidebar()
}}
aria-label="open left sidebar"
>
<Icon>menu</Icon>
</IconButton>
</Hidden>
<div className="flex items-center">
<FuseAnimate animation="transition.expandIn" delay={300}>
<Icon className="text-32 mr-12">account_box</Icon>
</FuseAnimate>
<FuseAnimate animation="transition.slideLeftIn" delay={300}>
<Typography variant="h6" className="hidden sm:flex">Contacts</Typography>
</FuseAnimate>
</div>
</div>
<div className="flex flex-1 items-center justify-center pr-8 sm:px-12">
<ThemeProvider theme={props.mainTheme}>
<FuseAnimate animation="transition.slideLeftIn" delay={300}>
<Paper className="flex p-4 items-center w-full max-w-512 px-8 py-4" elevation={1}>
<Icon className="mr-8" color="action">search</Icon>
<Input
placeholder="Search for anything"
className="flex flex-1"
disableUnderline
fullWidth
inputProps={{
'aria-label': 'Search'
}}
/>
</Paper>
</FuseAnimate>
</ThemeProvider>
</div>
<div className="flex flex-2 items-center justify-center">
<FormControl variant="filled" style={{width:"200px"}}>
<InputLabel >Create New</InputLabel>
<Select
labelId="demo-simple-select-filled-label"
id="demo-simple-select-filled"
>
<Button className='button-redirect' onClick={()=>redirectCreateContact(1)}>New Custom</Button>
<MenuItem className='button-redirect' onClick={()=>redirectCreateContact(2)}>New Supplier</MenuItem>
</Select>
</FormControl>
</div>
</div>
);
}
export default withRouter(ContactsHeader);
如果我调用函数时没有这样的回调
onClick ={redirectCreateContact(2)}
它在运行时调用,而不是在实际单击按钮或菜单项时调用。被调用的函数没有任何问题(我尝试过在单击时console.log一些东西,但没有结果)。
我错过了什么或做错了什么?
您应该替换为如下:
<Button className='button-redirect' onClick={()=>redirectCreateContact(1)}>New Custom</Button>
在MenuItem上调用redirectCreatecontact(2)方法与在Button onClick调用上调用不同,是否存在通过箭头函数调用该方法的原因?您是否尝试将代码更改为:
<MenuItem className='button-redirect' onClick={redirectCreateContact(2)}>New Supplier</MenuItem>
我只删除()=
这是我能看到的唯一区别
问题内容: 我已经设置了版本4 的React。当我直接在浏览器中输入URL时,路由有效,但是当我单击链接时,URL在浏览器上发生了变化(例如http:// localhost:8080 / categories ),但是内容不会更新(但是如果我刷新,它会更新)。 以下是我的设置: 该 Routes.js 设置如下: 我在 Nav.js 中使用的链接如下: 该 App.js 如下: 问题答案: 包装
我正在用datediff从current_timestamp查询时间戳列。但它给出了误差。 产出: 错误:Redshift表不支持指定的类型或函数(每个信息消息一个)。 警告:不支持函数“timestamp”(带有时区的timestamp)“。不支持函数“timestamptz(带时区的timestamp,integer)”。不支持函数“timestamptz(text)”。 但是如果我使用get
为什么onclick不起作用?但是,当我在不同的脚本标记中定义函数时,它是有效的。
我正在Android系统上使用简单数据格式。我试图将时间从美国语言环境转换为瑞典语。它在模拟器中工作正常,但当我在真实设备上测试时,它不起作用。 提前谢谢。
问题内容: 我在我的角度web应用程序。 当我在浏览器中键入内容时,它会重定向到我期望的位置,但是当我单击时,它不会重定向,而是停留在url上。 我的控制台没有错误,我也不知道为什么。 当不再工作时 我在这里看到了一个类似的问题AngularUI-Router$urlRouterProvider。我尝试了答案,但它仍然对我不起作用。 这是我的coffeescript代码: 问题答案: 先前的解决方
我已经可以切换到iframe,然后点击图像选择[如图1所示]然后不能点击div-预览按钮[如图2-蓝色按钮]这是“应用和关闭”。 知道吗?