// 根据当前登录角色
const isUser = true;
// 根据当前登录角色
const isAdmin = true;
// 当前业务对象的状态
const state = 'idle';
// 下面的各种逻辑判断按钮是否出现,有的还要判断是否disabled
return <div className='btnGroup'>
{isUser && state === 'aaa' && <button disabled={..}>开启</button>}
{isAdmin && state === 'bbb' && <button>关闭</button>}
{(isAdmin || isUser) && state === 'ccc' && <button>下架</button>}
{isUser && state === 'ddd' && <button>上架</button>}
{isUser && state === 'eee' && <button>发布</button>}
</div>
上面这种业务场景,怎么写比较优雅,一堆的条件判断,担心写出bug。
可以抽个函数出来,思路是:先角色后状态
参考这个问题即可:https://segmentfault.com/q/1010000043521515