在下面的代码片段中,我使用extends来创建组件。这是行不通的。但是如果我使用React.createClass({});它工作正常。你可以告诉我下面代码片段中的问题是什么
import React from 'react';
class App extends React.Component {
render() {
return (
<div>
<AuditTable/>
</div>
);
}
}
class AuditTable extends React.Component {
render(){
return(
<div> This is audit table
<AuditTable.Header/>
</div>
);
}
}
class AuditTable.Header extends React.Component{
render(){
return(
<div>
Audit Table Header
</div>
);
}
}
export default App;
此代码不起作用。任何帮助都会很棒
答案 0 :(得分:4)
import React from 'react';
class App extends React.Component {
render() {
return (
<div>
<AuditTable/>
</div>
);
}
}
var AuditTable = class AuditTable extends React.Component {
render(){
return(
<div>
<AuditTable.Header/>
<AuditTable.Row/>
</div>
);
}
}
AuditTable.Header = class Header extends React.Component{
render(){
return(
<div>
Audit Table Header
</div>
);
}
}
答案 1 :(得分:2)
我得到了我发布的问题的解决方案
var AuditTable = class AuditTable extends React.Component { ... }
AuditTable.Header = class Header extends React.Component { ... }
AuditTable.Row = class Row extends React.Component { ... }
创建一个类并分配给ca变量
谢谢大家
答案 2 :(得分:1)
AuditTable.Header
不是有效的类名(因为它包含一个点)。如果要将子组件导出为组件的静态属性,则有两种可能:
1 /声明Header
组件,然后将其分配给AuditTable.Header
const Header extends React.Component{
render(){
return(
<div>
Audit Table Header
</div>
);
}
}
AuditTable.Header = header;
2 /直接声明Header
作为AuditTable
class AuditTable extends React.Component {
static Header = class extends React.Component{
render(){
return(
<div>
Audit Table Header
</div>
);
}
}
render(){
return(
<div> This is audit table
<AuditTable.Header/>
</div>
);
}
}
答案 3 :(得分:0)
将AuditTable.Header更改为AuditTableHeader,您的代码应按预期工作。
React.Component不是您扩展的类的名称。有一个名为React的对象,它有一个名为Component的键,它是你扩展的类。