javascript - React 道具对我不起作用 我正在设计一张卡片
问题描述
这些天我正在学习 React.js..我正在通过反应设计一张卡片......你可以在下面查看我的代码......请解释我缺少的地方......输出没有显示任何图像,只显示一张卡片输出不是所有的卡......
卡组件:
import React from 'react';
import ReactDOM from 'react-dom';
function Card(props){
return(
<>
<div className="main">
<div className="img1">
<img src={props.imgsrc} alt="card image"/>
<div className="title">
<h3>{props.title}</h3>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Fugiat, repellat.</p>
<button>watch now</button>
</div>
</div>
</div>
</>
)
}
ReactDOM.render(
<>
<Card imgsrc="https://source.unsplash.com/random/200x200" title="First Image"/>
<Card imgsrc="https://source.unsplash.com/random/200x200" title="Second Image"/>
<Card imgsrc="https://wallpapercave.com/wp/wp6672547.jpg" title="Third Image"/>
</>,
document.getElementById('root')
);
export default Card;
应用组件:
import Card from "./Card"
// other imports
function App() {
return (
<>
<Heading />
<Imgs />
<Tme />
<Calc />
<hr></hr>
<Card />
</>
);
}
解决方案
你的Card
组件实际上是一个独立的 react 应用程序。这是因为当您运行整个脚本时,它还会执行在这种情况下ReactDOM.render
渲染您的反应元素的函数,#root
在调用之前还没有渲染任何 React 元素ReactDOM.render
。
function Card(props){
return(
<React.Fragment>
<div className="main">
<div className="img1">
<img src={props.imgsrc} alt="card image"/>
<div className="title">
<h3>{props.title}</h3>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Fugiat, repellat.</p>
<button>watch now</button>
</div>
</div>
</div>
</React.Fragment>
)
}
ReactDOM.render(
<React.Fragment>
<Card imgsrc="https://source.unsplash.com/random/200x200" title="First Image"/>
<Card imgsrc="https://source.unsplash.com/random/200x200" title="Second Image"/>
<Card imgsrc="https://wallpapercave.com/wp/wp6672547.jpg" title="Third Image"/>
</React.Fragment>,
document.getElementById('root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.0/umd/react-dom.production.min.js"></script>
<div id="root"></div>
当您导入时它不起作用Card
,App
因为 React 元素可能已经在那里呈现(例如,父组件App
),因此再次调用ReactDOM.render
同一个 html 元素#root
将导致意外结果。
因此,要解决仅 1 张卡正在渲染且图像未显示的问题,只需将您在其中所做的内容复制ReactDOM.render
到App
正在返回的内容中即可
// essential imports here
function App() {
return (
<>
<Heading />
<Imgs />
<Tme />
<Calc />
<hr>
</hr>
<Card imgsrc="https://source.unsplash.com/random/200x200" title="First Image" />
<Card imgsrc="https://source.unsplash.com/random/200x200" title="Second Image" />
<Card imgsrc="https://wallpapercave.com/wp/wp6672547.jpg" title="Third Image" />
</>
);
}
推荐阅读
- javascript - 将字符串转换为二维数组
- spring-data-neo4j - Spring Data Neo4J - 管理与图形数据库的连接
- python - 如何在 Python 中创建模块?
- google-chrome - 从托管页面将 HTML 签名注入 Gmail
- python-3.x - Tkinter 滚动条没有出现
- javascript - React 表单提交正在触发重新渲染(尽管有 e.preventDefault)
- python-3.x - 运行批处理文件找不到默认 Python
- ruby-on-rails - Rails/GraphQL/Devise:对于运行 GraphQL 的应用程序,有什么好的替代方案吗?
- algorithm - 基于用户输入物质像素处理器的白平衡算法
- angular - 我如何清除另一个组件上的所有验证器,角度 7 反应形式