DRY jsx渲染方法

时间:2017-01-04 14:06:22

标签: javascript reactjs ecmascript-6 dry

我想知道这是否是一个更好的方法来干这个代码,你们有什么想法吗? 道具是相同的,只是组件改变......

let constraints = view1.superview!.constraints
var count = 0

print("superview has \(constraints.count) constraints")

for constraint in constraints {
    if constraint.firstItem === view1 {
        count += 1
        print(constraint)
    } else if let secondItem = constraint.secondItem, secondItem === view1 {
        count += 1
        print(constraint)
    }
}

print("\(count) of them relate to view1")

1 个答案:

答案 0 :(得分:1)

使用:

let createElement = function(Component) {
    return (
        <Component onChange={(val) => { 
            onChange(val);
            callback(val);
            }}
            value={value}
        {...rest}
      />
    );
};

你可以做到

let selectAsync = createElement(Select.Async);
let select = createElement(Select);

您可以使用{{select}} and {{selectAsync}}

在jsx部分中渲染它们

P.S。:我没有直接测试这个,但几天前做了类似的事情,所以这种方法应该有效。请注意,Component必须以大写字母开头。