如何修改反应扩展类?

时间:2016-08-09 02:26:11

标签: javascript reactjs react-native

所以让我说我有这个

class ExampleOne extends ExampleTwo

并且在ExampleTwo中有这个

return (
    <div className="test">
        <MyComponent exampleLabel="ExampleTwo">

是否可以修改MyComponent的exampleLabel为ExampleOne类说“ExampleOne”?

2 个答案:

答案 0 :(得分:2)

有两种情况

1)如果您可以修改ExampleTwo,请使用react props

class ExampleTwo extends React.Component {
      render() {
        return <div>
          <MyComponent exampleLabel={this.props.exampleLabel || 'ExampleTwo'}/>
        </div>;
      }
}
// And render as 
<ExampleOne exampleLabel="ExampleOne"/>

2)如果你不能修改ExampleTwo,那么你可以覆盖render函数

class ExampleOne extends ExampleTwo {
   render() {
        return <div>
          <MyComponent exampleLabel="ExampleOne"/>
        </div>;
      }
}

答案 1 :(得分:1)

是的,扩展ExampleOne很好,你只需将它作为一个道具传递:

在ExampleTwo中:

return (
    <div className="test">
        <MyComponent exampleLabel="ExampleOne">