大家好,我有这个代码,我已经添加了一个表
import React, {Component} from 'react';
import Auth from '../modules/Auth';
import Dashboard from '../components/Dashboard.jsx';
import {
Table,
TableBody,
TableHeader,
TableHeaderColumn,
TableRow,
TableRowColumn,
} from 'material-ui/Table';
class DashboardPage extends React.Component {
/**
* Class constructor.
*/
constructor(props) {
super(props);
this.state = {
secretData: '',
selected: [1]
};
}
componentDidMount() {
const xhr = new XMLHttpRequest();
xhr.open('get', '/api/dashboard');
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
// set the authorization HTTP header
xhr.setRequestHeader('Authorization', `bearer ${Auth.getToken()}`);
xhr.responseType = 'json';
xhr.addEventListener('load', () => {
if (xhr.status === 200) {
this.setState({
secretData: xhr.response.message
});
}
});
xhr.send();
isSelected = (index) => {
return this.state.selected.indexOf(index) !== -1;
};
handleRowSelection = (selectedRows) => {
this.setState({
selected: selectedRows,
});
};
}
/**
我已经传过这样的数据,这样对吗
*/
render() {
return (<Dashboard isSelected={this.isSelected} handleRowSelection={this.handleRowSelection} />);
}
}
export default DashboardPage;
这是另一个代码
import React, { PropTypes, Component } from 'react';
import { Card, CardTitle, CardText } from 'material-ui/Card';
import {Table,TableBody,TableHeader,TableHeaderColumn,TableRow,TableRowColumn,} from 'material-ui/Table';
const Dashboard = ({handleRowSelection, isSelected }) => (
<Table onRowSelection={this.handleRowSelection}>
<TableHeader>
<TableRow>
<TableHeaderColumn>ID</TableHeaderColumn>
<TableHeaderColumn>Name</TableHeaderColumn>
<TableHeaderColumn>Status</TableHeaderColumn>
</TableRow>
</TableHeader>
<TableBody>
<TableRow selected={this.isSelected(0)}>
<TableRowColumn>1</TableRowColumn>
<TableRowColumn>John Smith</TableRowColumn>
<TableRowColumn>Employed</TableRowColumn>
</TableRow>
<TableRow selected={this.isSelected(1)}>
<TableRowColumn>2</TableRowColumn>
<TableRowColumn>Randal White</TableRowColumn>
<TableRowColumn>Unemployed</TableRowColumn>
</TableRow>
<TableRow selected={this.isSelected(2)}>
<TableRowColumn>3</TableRowColumn>
<TableRowColumn>Stephanie Sanders</TableRowColumn>
<TableRowColumn>Employed</TableRowColumn>
</TableRow>
<TableRow selected={this.isSelected(3)}>
<TableRowColumn>4</TableRowColumn>
<TableRowColumn>Steve Brown</TableRowColumn>
<TableRowColumn>Employed</TableRowColumn>
</TableRow>
</TableBody>
</Table>
);
export default Dashboard;
我想要的是将函数 isSelected, handleRowSelection 传递给另一边,但我有那个问题告诉我 Uncaught ReferenceError: isSelected is not defined 我想要的是应用这个http://www.material-ui.com/# /components/table有没有一种方法可以传递该函数
首先,在 中DashboardPage
,您需要将isSelected
和定义handleRowSelection
为方法(或类属性)。
其次,您需要this.
在Dashboard
组件中的任何地方放置。
第三,你需要使用isSelected
回调中Dashboard
,像这样:() => isSelected(0)
。这将确保isSelected
在您实际选择表格行后调用。目前,isSelected
会在Dashboard
组件挂载后立即调用 4 次,因为该函数是直接调用的。
顺便说一句,老实说,我建议您参加一些有关 ES6 和 React 基础知识的在线课程,否则您将不知道自己在做什么以及为什么某些事情会以这种方式工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句