項目要求實現按鈕級權限,簡單來說就是需要通過后台數據綁定來控制前端頁面哪些操作按鈕需要渲染,哪些操作按鈕不需要渲染,
大體的方案是:
在原有的按鈕標簽外再套一層按鈕權限控制標簽,然后每個具體的按鈕對照后台給定的唯一值傳入到這個"按鈕權限控制"組件,然后在組件中判斷該按鈕該不該渲染,之中用到的一個技術點就是React.cloneElement,可以修改子元素的屬性值,下面一起了解一下React.cloneElement
參數:TYPE(ReactElement),[PROPS(object)] ,[CHILDREN(ReactElement)]
克隆並返回一個新的 ReactElement (內部子元素也會跟着克隆),新返回的元素會保留有舊元素的 props、ref、key,也會集成新的 props(只要在第二個參數中有定義),第三個參數為添加的新的子元素。

要注意的是,createElement 的第一個參數必須是字符串或 ReactClass,而在 cloneElement 里第一個參數應該是 ReactElement:

原文地址:https://zhirongyuan.github.io/blog/2017/03/10/Blog-entry-two.html