Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过<;a>;链接_Javascript_Reactjs - Fatal编程技术网

Javascript 通过<;a>;链接

Javascript 通过<;a>;链接,javascript,reactjs,Javascript,Reactjs,在下面的示例中,我有两个功能组件,它们提供了作为独立页面的想法,当然,它们只显示不同颜色的框 const Home = () => <div style={{background:'red', height: 100, width: 100}}></div>; const About = () => <div style={{background:'blue', height: 100, width: 100}}></div

在下面的示例中,我有两个功能组件,它们提供了作为独立页面的想法,当然,它们只显示不同颜色的

const Home = () =>
    <div style={{background:'red', height: 100, width: 100}}></div>;

const About = () =>
    <div style={{background:'blue', height: 100, width: 100}}></div>;
如果我有一个名为
App
的组件为我呈现不同的页面:

const App = () =>
    <div>
        <Navbar />
        // Render current page here; default is the `Home` component.
    </div>;

ReactDOM.render(<App />, document.getElementById('app'));
const-App=()=>
//在这里呈现当前页面;默认为“主”组件。
;
ReactDOM.render(还有,谢谢你的回答!我来自Codecademy的ReactJS课程,所以要过渡到Javascript和React的“真实世界”有些困难,因为我必须学习ES6,并且对大多数JS库一无所知。无论如何,我感谢你们为我指明了
React router
的方向,并给了我一个关于如何在没有它的情况下实现我的目标的例子。干杯。

这就是我的初衷

虽然不建议手动执行,但它可以通过发出click事件来工作,该事件调用从包含“页面”的父组件传入的回调函数。该回调将告诉父容器单击了哪个导航链接,它将决定显示哪个页面以及停止呈现哪个页面。

这就是构建的目的


虽然不建议手动执行,但它可以通过发出click事件来工作,该事件调用从包含“页面”的父组件传入的回调函数。该回调将告诉父容器单击了哪个导航链接,它将决定显示哪个页面以及停止呈现哪个页面。

如果每个页面没有路由器/控制器,您可以执行以下操作:

const pages = ['array', 'of', 'pages'];

class App extends React.Component {
  constructor(props) {
    super();
    this.state = {
      activePage: pages[0]
    }
  }

  switchPage = (page) => {
    this.setState({
    activePage: page
    })
  }

  renderActivePage = () => {
    switch(this.state.activePage) {
      case 'home': 
        return <HomeComponent />
    }
  }
  render() {

    return (
      <div>
       <Navbar switchPageFunction={this.switchPage}/>
       {renderActivePage()}
       </div>;)
  }

}
constpages=['array','of','pages'];
类应用程序扩展了React.Component{
建造师(道具){
超级();
此.state={
活动页面:页面[0]
}
}
切换页面=(页面)=>{
这是我的国家({
活动页面:第页
})
}
renderActivePage=()=>{
开关(this.state.activePage){
“家”案例:
返回
}
}
render(){
返回(
{renderActivePage()}
;)
}
}
然后只需将a标记的onclick设置为实际的switchPageFunction,并将页面名称作为参数传入。然后父组件将接收更新,更新其自身状态,并呈现正确的组件


我不建议使用此路线,而是研究react router,它是专为此用例构建的

如果每个页面都没有路由器/控制器,您可以执行以下操作:

const pages = ['array', 'of', 'pages'];

class App extends React.Component {
  constructor(props) {
    super();
    this.state = {
      activePage: pages[0]
    }
  }

  switchPage = (page) => {
    this.setState({
    activePage: page
    })
  }

  renderActivePage = () => {
    switch(this.state.activePage) {
      case 'home': 
        return <HomeComponent />
    }
  }
  render() {

    return (
      <div>
       <Navbar switchPageFunction={this.switchPage}/>
       {renderActivePage()}
       </div>;)
  }

}
constpages=['array','of','pages'];
类应用程序扩展了React.Component{
建造师(道具){
超级();
此.state={
活动页面:页面[0]
}
}
切换页面=(页面)=>{
这是我的国家({
活动页面:第页
})
}
renderActivePage=()=>{
开关(this.state.activePage){
“家”案例:
返回
}
}
render(){
返回(
{renderActivePage()}
;)
}
}
然后只需将a标记的onclick设置为实际的switchPageFunction,并将页面名称作为参数传入。然后父组件将接收更新,更新其自身状态,并呈现正确的组件

我不建议使用这条路线,而是研究react路由器,它是为这个用例而构建的