来自mobx存储的字符串用作反应组件名称吗?

时间:2019-02-26 12:50:53

标签: reactjs mobx mobx-react

使用地图有些重复。

有什么方法可以使用从mobx传来的字符串来渲染react组件? 因为当我拥有20种不同的动态组件时,它很快就会变得混乱而重复。

当前我正在使用:

import bisect

def minSum(num, k):
    num.sort()
    lastIndex = len(num)-1
    for i in range(k):
        if num[lastIndex]==1:
            return sum(num)

        num[lastIndex]= math.ceil(num[lastIndex]/2)
        lastNumber = num[len(num)-1]
        num.pop()
        bisect.insort(num, lastNumber)

    return sum(num)

还有什么短的可能吗?例如

function ParentComponent(){
  const compNames = {
      component1: <component1/>,
      component2: <component2/>,
  }
  const component = compNames[store.name];
  return( 
        <div>
            <MyComponentName type={type}/>
        </div>
   )
}

然后将Parent组件导入到索引页面。

1 个答案:

答案 0 :(得分:0)

// MobX store
import UserList from "./UserList";
import UserView from "./UserView";

@observable
component = {
    "user-list": UserList,
    "user-view": UserView
};


// observer component
@observer function UserComponent({type}) {
    const Component = store.component[type];

    return <Component />;
}


// display the component
<UserComponent type="user-list" />