Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checkbox 使用后为何不能点击? #115

Open
zhangqhzz opened this issue May 10, 2018 · 16 comments
Open

Checkbox 使用后为何不能点击? #115

zhangqhzz opened this issue May 10, 2018 · 16 comments

Comments

@zhangqhzz
Copy link

zhangqhzz commented May 10, 2018

“Checkbox isIndicator “使用后,页面上点击没有反应,为什么?

@Lobos
Copy link
Owner

Lobos commented May 11, 2018

代码贴出来看一下呢。

@zhangqhzz
Copy link
Author

知道原因了,需要onChange 并进行this.setState({}),否则 仅仅Checkbox isIndicator 是不行的

@Lobos
Copy link
Owner

Lobos commented May 11, 2018

嗯,是当受控组件使用了,需要自己处理状态的。

@zhangqhzz
Copy link
Author

如果在Table控件外部进行全选操作?因为我不需要Table中的header,所以就不会有Header中的全选,我需要在外部添加全选checkbox。外部如何进行全选呢? 因为Table组件是用compose处理的,在Table组件外部如何得到内部的data,或在外部如何调用里面的handleSelect (d, e, checked),即内似内部的全选调用this.handleSelect.bind(this, 'all')

@zhangqhzz
Copy link
Author

可能没有直接的方法,我可能要自己修改处理了

@Lobos
Copy link
Owner

Lobos commented May 11, 2018

这个就没办法用表格内置的checkbox了,可以自己加一列,里面放一个Checkbox。在外部定义一个变量管理。

@zhangqhzz
Copy link
Author

谢谢。原先一直是用的spring mvc ,jsp做一些项目,现在要求学习用react 进行部分项目修改试试,原先页面用的表格控件,如JqGrid,非常好用,所以转到react,也想找一个类似的表格控件,实际很难找到好的,结果发现您的这个比较好,但我需要做一些修改

@vipcxj
Copy link

vipcxj commented May 11, 2018

外部传入的属性请用props, 还有setState里的state你完全可以放在更外层管理~

@vipcxj
Copy link

vipcxj commented May 11, 2018

说白了觉得你的观念得改变,用spring mvc的思路用react必定杯具

@zhangqhzz
Copy link
Author

是的

@zhangqhzz
Copy link
Author

在外部加Checkbox,但外部没办法得到内部的data,还是没法处理?

@Lobos
Copy link
Owner

Lobos commented May 11, 2018

单行render的时候可以拿到,你可以在render的时候存起来。

@zhangqhzz
Copy link
Author

谢谢。我在Table.js的render 下,if(this.props.getData) this.props.getData(this.props.data),然后在使用Table组件的js文件中定义getData函数,并<Table getData={this.getData)可以得到了。

@zhangqhzz
Copy link
Author

Table.js组件内部勾选 操作并进行this.setState({}),是仅对Table.js进行渲染,但如果我在调用Table.js的外部进行全选 并对this.arrayHolder进行add或remove后,也进行this.setState({})的话,是对 compose(
Fetch(true), Filter, Sort, Pagination)(Table) 相关都渲染吗?

@Lobos
Copy link
Owner

Lobos commented May 11, 2018

会,一页数据量很大的情况下还是可能有一些性能问题的,所以要做分页。

@vipcxj
Copy link

vipcxj commented May 12, 2018

你需要的是结合props和state,state可以存在上一级,也就是和相应用户操作的回调函数的同一级,然后将state作为props传给下一级,也就是你的table

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants