React ES6 导入无状态组件
React ES6 importing a stateless component
我一直在寻找这个永远的答案,哈哈。 如何将无状态反应类导入另一个类?我收到错误:
"警告.js:45警告:HTMLImageElement(...):在返回的组件实例上找不到render
方法:您可能忘记定义render
,从无状态组件返回null/false,或尝试呈现类型为不是React组件的函数的元素。
我正在尝试导入标注图像组件。
import React from 'react';
import ReactDOM from 'react-dom';
export class CalloutImage extends React.Component {
constructor(props) {
super(props)
this.handleClick = this.handleClick.bind(this)
}
render() {
return (
<Image onClick={this.handleClick} className="header-img" src="https://images.unsplash.com/photo-1453106037972-08fbfe790762?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&s=cbaaa89f2c5394ff276ac2ccbfffd4a4" />
)
}
handleClick() {
alert();
}
}
到。。。。
import { CalloutImage } from './CalloutImage.jsx'
const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
class App extends React.Component {
render() {
return (
<div>
<Navigation />
<Grid>
<CalloutImage />
<ColumnContent />
</Grid>
<Footer />
</div>
)
}
}
class Navigation extends React.Component {
render() {
return (
<Navbar inverse>
<Navbar.Header>
<Navbar.Brand>VA</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<NavItem eventKey={1} href="#">Home</NavItem>
<NavItem eventKey={2} href="#">About</NavItem>
<NavItem eventKey={3} href="#">Users</NavItem>
</Nav>
</Navbar.Collapse>
</Navbar>
)
}
}
class ColumnContent extends React.Component {
render() {
return (
<Row>
<Col sm={6}>
<h2>Heading 2</h2>
<p>{lorem}</p>
</Col>
<Col sm={6}>
<h2>Heading 2</h2>
<p>{lorem}</p>
</Col>
</Row>
)
}
}
class Footer extends React.Component {
render() {
return (
<footer>
<Grid>
<p>VA ©</p>
</Grid>
</footer>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'))
Image
应该是小写的,否则 React 会认为它是一个 React 组件并尝试在其上调用 render()
。
在 React JSX 中,如果您使用的是 HTML tags
,那么它应该是lowercase
。对于所有其他用户定义的组件或从外部包导入的任何其他组件,应始终Capitalized
。
在代码中,由于使用的是react-bootstrap
<Image />
组件,因此应将该组件导入到文件中,然后使用它。
相关文章:
- 如何更改reactjs中外部/独立组件的状态或属性
- 从组件状态的数组中删除元素
- React js更改状态不会更新组件
- 如何在渲染函数中检查 react 中子组件的状态
- 复选框保持React JS中各组件的状态
- 设置两个反应组件之间状态的正确方式
- 如何在react中设置视频端组件的状态
- reactjs-redux,是否可以有一个由2个组件使用的状态
- 如何处理 React / Flux 组件中的状态转换
- 如何从一个组件访问另一个组件的状态
- 如果我不应该在组件WillUpdate中调用setState,如何更新状态(使用ReactJS)
- React ES6 导入无状态组件
- React Js 组件在状态更改后只渲染一次
- Reactjs:在修改对象之前,是否需要复制处于组件状态的对象
- 在 React/Redux 中管理同级组件之间的滚动状态
- 超时后在无状态组件中执行函数
- React无状态组件-如何组织内部函数
- 使用无状态组件创建注册表单
- React无状态组件中的Ajax调用
- React无状态组件不工作