【发布时间】:2020-04-08 04:35:08
【问题描述】:
这只是粗略的代码,试图确保在每个组件之间发送数据,所以这是我的测试(文件:navbar.js)
import React from 'react';
import {Nav,} from 'react-bootstrap';
import styles from 'styled-components';
import Layout from './layout';
import Reports from './reports';
const Navbar =() =>{
function handler(x){
if (x==1){
return <Reports></Reports>
}
}
return(
<Nav defaultActiveKey="/" className="flex-column" onSelect={(selectedKey) => <Layout page={selectedKey} func={handler}></Layout>}>
<Nav.Link href="/">Home</Nav.Link>
<Nav.Link href="/Orders">Orders</Nav.Link>
<Nav.Link href="/Users">Users</Nav.Link>
<Nav.Link eventKey='1' href="/Reports">Reports</Nav.Link>
</Nav>
)
}
export default Navbar;
现在布局类在尝试访问道具时出现问题(文件:layout.js)
import React, { Component } from 'react';
import {Nav, Col , Row, Container} from 'react-bootstrap';
import styles from 'styled-components';
import Navbar from './navbar';
class Layout extends Component{
render(){
return(
<Container fluid>
<Row>
<Col xs={3}>
<Navbar>
</Navbar>
</Col>
<Col>
{this.props.func(this.props.page)}
column 2
</Col>
</Row>
</Container>
)
}
}
export default Layout;
我试图完成的是通过使用处理程序返回从导航中选择的组件,以获取单击后存储在 selectedKey 中的 eventKey,当前正在尝试为报告页面执行此操作。
【问题讨论】:
-
你有什么错误吗?
-
× TypeError: this.props.func 不是函数 Layout.render | ^ 22 | {this.props.func(this.props.page)} 23 |第2 24栏| 所以基本上我称为 func 的函数没有到达布局组件,prop 也没有被命名为 page
-
好的,看我的回答。
标签: reactjs undefined react-props react-component