Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 ReactJS:将状态/道具传递给可反应的表行_Javascript_Reactjs_React Jsx - Fatal编程技术网

Javascript ReactJS:将状态/道具传递给可反应的表行

Javascript ReactJS:将状态/道具传递给可反应的表行,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,我正在使用Reactable库在React中显示数据表,我想在单击表中的一行时设置/更改父组件的状态UsersTable,以记住单击记录的id,以便进一步操作。 不幸的是我做不成。我尝试将handleClick函数作为道具传递,但我总是得到一个Uncaught类型错误:并且handleClick未定义 var Table = Reactable.Table; var Tr = Reactable.Tr; var Td = Reactable.Td; var UsersTable = React

我正在使用Reactable库在React中显示数据表,我想在单击表中的一行时设置/更改父组件的状态
UsersTable
,以记住单击记录的id,以便进一步操作。 不幸的是我做不成。我尝试将
handleClick
函数作为道具传递,但我总是得到一个
Uncaught类型错误:
并且
handleClick
未定义

var Table = Reactable.Table;
var Tr = Reactable.Tr;
var Td = Reactable.Td;

var UsersTable = React.createClass({
  propTypes: {
    users: React.PropTypes.array.isRequired,
  },

  handleClick: function(row) {
      this.setState({userId: row.key})
  },

  getInitialState: function() {
    return {
        userId: null
    };
  },

  render: function() {
    return (
            <div className="usersTable">
                <div className="globalUserSearch">
                    <div className="globalUserSearchLabel">Selection:</div>
                    <div><input type="text" className="userSearchInput" placeholder="Global Search"></input></div>
                </div>

                <Table className="table" itemsPerPage={5} sortable={true} handleClick={this.handleClick}>
                    {this.props.users.map(function(row) {
                            return (
                                <Tr key={row.key} onClick={this.props.handleClick.bind(this, row)}>
                                    <Td column="username">{row.personalInformation.username}</Td>
                                    <Td column="firstname">{row.personalInformation.firstname}</Td>
                                    <Td column="lastname">{row.personalInformation.lastname}</Td>
                                </Tr>
                            )
                        })}
                </Table>
            </div>
  )},
});
var Table=reactible.Table;
var Tr=可反应的.Tr;
var Td=可反应的。Td;
var UsersTable=React.createClass({
道具类型:{
用户:React.PropTypes.array.isRequired,
},
handleClick:函数(行){
this.setState({userId:row.key})
},
getInitialState:函数(){
返回{
userId:null
};
},
render:function(){
返回(
选择:
{this.props.users.map(函数(行)){
返回(
{row.personalInformation.username}
{row.personalInformation.firstname}
{row.personalInformation.lastname}
)
})}
)},
});
如果我直接在所描述的
元素中定义函数 并将
行记录到控制台。按
,一切正常。但正如我所说,我需要更新父组件的状态

任何建议都很好


Thx。您可以尝试使用fixeddatatable作为替代方案。使用onRowClick,您可以使用

_handleRowClick: function(event, index, row ){


    },
在表中,在
映射
回调中有onRowClick={this.\uu handleRowClick}

1),this引用全局对象。见和。2) 任何实例化的
UsersTable
是否向其传递
handleClick
prop?您尚未在
propTypes
中列出。或者您真的想引用组件自己的
handleClick
方法吗?那就是
this.handleClick
,而不是
this.props.handleClick