javascript - ReactJS 没有渲染孩子
问题描述
这是我简单的home.js代码。没有删除任何相关代码。
import Banner from '../components/Banner'
export default function Home() {
return (
<Hero>
<Banner title="luxurious rooms" subtitle="delux rooms starting at $299">
<Link to="/rooms" className="btn-primary">
Our rooms
</Link>
</Banner>
</Hero>
这是我的banner.js
import React from 'react'
export default function Banner({childern,title,subtitle}) {
return (
<div className="banner">
<h1>{title}</h1>
<div />>
<p>{subtitle}</p>
{childern}
</div>
)
}
我不明白为什么它不渲染。
在床上,我继续看到<banner>
。英雄内部的标签。我该如何解决这个问题?
解决方案
好的,我为此创建了一支笔,但它没有保存,所以我将在此处添加代码。看起来你正在为一个相对简单的概念采取一种困难的方法。当您将 props 传递给组件时,您可以使用this.props.nameOfProp在该组件中访问它们。您不需要将链接作为子组件传递,只需在子组件中添加链接,并将链接所需的信息作为道具传递。
编辑:这是一个工作示例https://codesandbox.io/embed/elegant-fast-m52bt
import React from "react";
import ReactDOM from "react-dom";
import Banner from "./Banner";
import { BrowserRouter as Router } from "react-router-dom";
class App extends React.Component {
render() {
return (
<div>
<Banner
title={"luxurious rooms"}
subtitle={"delux rooms starting at $299"}
path={"/rooms"}
classList={"btn-primary"}
/>
</div>
);
}
}
ReactDOM.render(
<Router>
<App />
</Router>,
document.querySelector("#app")
);
然后你的横幅应该是这样的:
import React from "react";
import { Link } from "react-router-dom";
class Banner extends React.Component {
render() {
return (
<div className="banner">
<h1>{this.props.title}</h1>
<p>{this.props.subtitle}</p>
<Link
to={this.props.path}
className={this.props.classList}
>
Link Text (could also be a prop)
</Link>
</div>
);
}
}
export default Banner;
推荐阅读
- android - react-native run-android, Could not resolve all artifacts for configuration ':classpath'
- sql - SQL消除重复,同时合并附加表
- c# - 具有多个条件和 in 子句的 C# EF Linq 语法查询
- c - 新 Linux 内核中的内存隔离,还是什么?
- python - 为什么我在调用 find_cars() 时会出现此错误
- string - SQL Server 2017 - 根据另一个字符串中的列数动态生成一个字符串
- java - 为 Selenium 项目构建数据结构以测试 Menu 是否具有所有需要的子菜单并测试是否显示所有菜单的最佳方法是什么?
- react-native - 是否可以在裸反应原生项目中使用博览会视频?
- tibco - 如何从 BW5 对 Tibco ADB 适配器代码进行逆向工程?
- unity3d - 如何优化 Unity 中 Flappy Bird 中的跳跃?