javascript - 反应 this.props.title 为空!!为什么?
问题描述
我有 3 个状态(状态、头衔、舞蹈)
我使用 react-router、react-switch、React.cloneElement。
应用程序.jsx
var React = require('react');
var io = require('socket.io-client');
var Router = require('react-router');
var RouteHandler = require('react-router').RouteHandlerl;
var Header = require('./parts/Header');
module.exports = class App extends React.Component {
constructor(){
super();
this.state = {
status: 'disconnected',
title:'no Tile',
dance: 'dance'
};
}
render() {
return (
<div>
<Header title={this.state.title} status={this.state.status } />
{React.cloneElement(this.props.children,this.state)}
</div>
);
}
}
并想在 Audience 中花费 state(title)!
问题是 this.props.title 为 null为什么?必须 this.props.title == 'no Tile'
观众.jsx
var React = require('react');
module.exports = class Audience extends React.Component {
render(){// this.props.title is null ???
return (<h1>Audience : {this.props.title}</h1>);
}
}
在应用程序客户端中运行
应用程序客户端.jsx
var React = require('react');
var Router = require('react-router-dom');
var BrowserRouter = require('react-router-dom').BrowserRouter;
var Route = require('react-router-dom').Route;
var Switch = require('react-router-dom').Switch;
var ReactDOM = require("react-dom");
var App = require("./components/APP");
var Audience = require("./components/Audience");
class Run extends React.Component {
render(){
return(
<BrowserRouter >
<Switch title={this.props.title} >
<Route path="/" component={Audience} title={this.props.title} />
</Switch>
</BrowserRouter>
);
}
}
ReactDOM.render(
<App >
<Run />
</App>
,
document.getElementById('react-container')
);
解决方案
因为 Route 组件没有将 props 向下传递给匹配的组件。尝试这样的事情:
<Route path="/" render={() => <Audience title={this.props.title} />} />
推荐阅读
- python - 如何预测测试集?
- php - 基于所有记录是否满足特定条件的多记录表选择的Laravel限制结果
- ios - Cordova 从文档问题加载资源(WKwebview)
- android - 如何在 string.xml 命名中使用带有空格的大写字符?
- c# - C# Excel Word Interop - 识别正在激活的范围
- youtube-data-api - PlaylistItems 似乎被限制为 20 000 个上传播放列表。有什么解决方法吗?
- github-actions - JavaScript Github Action 中的环境变量
- cypress - 尽管模块存在于赛普拉斯中,但在启动测试时找不到模块“fs-extra”错误
- kubernetes - 为什么我可以从任何 worker 和 master 公网 IP 访问 kubernetes pod?
- java - 如果矩阵的所有元素从最高到最低排序,我需要一个返回 true 的代码