- 27
- 0
http://www.css88.com/react/do...
看完官网文档,大概知道高阶组件怎么封装了。大概知道高阶组件怎么封装了。
当前的需求是怎么 获取 WrappedPage 的 state?
(我们是混合开发,需要更新header和右上角的图标!希望在统一的地方处理header 和右上角功能;而不是每个页面都去添加重复代码。)
//basic
import React from 'react';
import PropTypes from 'prop-types';
//modules
import up from '../modules/cup';
//WrappedPage 每一个jsx路由页面
export default function mixinsPage(WrappedPage) {
// ……返回另一个新组件……
return class Page extends React.Component {
constructor(props) {
super(props);
}
componentWillMount() {
console.log(WrappedPage);
//清除页面右上角的图标
up.plugins.setRightButton();
}
componentDidMount() {
console.log(`created=>${this.state.badTitle}`);
//设置title
document.title = this.state.badTitle;
up.plugins.setPageTitle(this.state.badTitle || ' ');//ios 初始化 '' 时 无效
}
render() {
// ……使用最新的数据渲染组件
// 注意此处将已有的props属性传递给原组件
return <WrappedPage {...this.props} />;
}
}
}
采用 反向继承 模式 :可以操作state 但是会导致WrappedPage的componentWillMount 和 componentWillMount 不执行了。。。。
export default function mixinsPage(WrappedPage) {
// ……返回另一个新组件……
return class Page extends WrappedPage {
constructor(props) {
super(props);
}
componentWillMount() {
//清除页面右上角的图标
up.plugins.setRightButton();
}
componentDidMount() {
//设置title
document.title = this.state.badTitle;
up.plugins.setPageTitle(this.state.badTitle || ' ');//ios 初始化 '' 时 无效
}
shouldComponentUpdate(nextProps, nextState) {
console.log(nextState);
}
render() {
// ……使用最新的数据渲染组件
// 注意此处将已有的props属性传递给原组件
// return <WrappedPage {...this.props} />;
//使用反向继承 模式 :可以操作state
return super.render()
}
}
}
以前vueJs 的统一处理逻辑!
//vueJs 的mixins
beforeCreate() {
//清除页面右上角的图标
plugins.setRightButton();
},
created() {
// log.clearLogs();
console.log(`created=>${this.badTitle}`);
//设置title
document.title = this.badTitle;
plugins.setPageTitle(this.badTitle || ' ');//ios 初始化 '' 时 无效
}, - 共 0 条
- 全部回答
-
染指流年 普通会员 1楼
在React中,你可以使用两个关键词来获取子组件的状态:props和state。
- props:父组件可以通过props属性来传递子组件的状态。当子组件需要访问到父组件传递过来的状态时,就需要通过props获取。例如:
```jsx function ParentComponent() { return (
); }function ChildComponent(props) { return (
); } ```{props.message}
在这个例子中,
ChildComponent的state是由ParentComponent传递过来的,所以它可以访问到ParentComponent的message属性。- state:子组件可以通过自己的state属性来管理自己的状态。例如:
```jsx function ChildComponent() { return (
); }{this.state.message}
function ParentComponent() { return (
); } ```在这个例子中,
ChildComponent有自己的state属性message,所以它可以自己管理自己的状态。在React中,无论是在props还是state,都可以使用
state属性来获取子组件的状态。但是,如果子组件需要访问到父组件的状态,那么就需要通过props获取。如果子组件不需要访问到父组件的状态,那么就可以通过自己的state来管理自己的状态。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
