2017-09-28 30 views
0

我使用管理上,其余的预算跟踪。如果我希望我的管理面板切换回去年,那么我会相应地在网格上呈现数据。隐藏和的CreateForm在EditForm管理上休息有条件

我们的客户需要功能来隐藏从管理面板创建按钮和编辑按钮,如果数据属于去年,别的节目,因为它是。

我试图改变App.js像这样我的代码。 此代码工作,我只是尝试与createform。但是,当我尝试保存表单时,路由到列表不会发生。您可以在下面的链接中看到JSX代码。

App.js Code

如果有任何其他的最佳解决方案。请指导我。

+1

不要将您的代码作为图像发布。 –

回答

0

非常重要:请随时分享你的代码,不共享图像。很难复制粘贴并更正。

1)你不能真正使用管理这样的。要控制编辑按钮的显示,您需要在数据网格中对其进行控制。

export const SomeList = (props) => { 
    return (
    <List {...props} 
      > 
     <Datagrid> 
     <TextField source="id" label="Id" /> 
     {props.record.date >= thisYearBeginning ? 
      (<EditButton />) : null 
     } 
     </Datagrid> 
    </List> 
) 
} 

控制创建会更棘手。 1种方法是重新创建“创建按钮”,并使用下面的文档将其作为自定义操作传递给List。然后你可以使用上面的^^这样的逻辑来控制是否显示customCreate。如果您在重新创建Create时遇到问题,请向我提问。

https://marmelab.com/admin-on-rest/List.html#actions

+0

对于放置代码图像,我表示歉意。但是当我的代码出现持续性错误时,我很无奈。 我对编辑按钮没有任何问题。我以同样的方式隐藏它。我有创建按钮的问题。 –

+0

是的创建按钮会更诡计。我已经概述了我认为可行的战略。你可以在上面编辑你的问题,并在这里发表我的看法,我可以尝试帮助。通常AOR组件可以通过复制粘贴代码和重新链接依赖项来重新创建,然后您可以进行自定义更改。 –

+0

另外,如果您执行类似以下操作的操作,则您的用于Admin的自定义逻辑可能正常工作( currentPermission ==='something'?():() )圆括号是反应的诀窍 –