如何从另一个组件调用React的render方法()?

ant*_*a40 1 javascript reactjs react-redux

客户端请求实现仪表板切换的功能.我在做这个工作:

Dashboard.js

import React, { Component } from 'react';
import { connect } from 'react-redux';

// components
import UserDashboard from '../components/dashboard/user-dashboard/UserDashboard.js';
import NewUserDashboard from '../components/new-dashboard/user-dashboard/NewUserDashboard.js';

@connect((state) => {
  return {
    identity: state.identity.toJS().profile
  };
})

export default class Dashboard extends Component {

  render() {
    const msisdn = this.props.location.state ? this.props.location.state.msisdn : null;
    return (
      <UserDashboard msisdn={ msisdn }/>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

Dashboard.js是仪表板控制器.我有2个仪表板:UserDashboard和NewDashboard.

假设用户正在查看另一个屏幕,并且在该屏幕中有一个按钮.如果单击该按钮,仪表板将调用它的渲染方法,而是返回NewDashboard.NewDashboard将自动显示.这可能吗?

RIY*_*HAN 5

编程方式调用render方法是不可能的.

state update如果要调用该组件的render方法,则必须执行该特定组件.

比如,如果要调用DashboardComponent的render方法,则必须调用setState此组件.你可以做一些虚拟状态提升.