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

How to make tab content stateful ? #93

Open
aichaoxy opened this issue May 4, 2018 · 9 comments
Open

How to make tab content stateful ? #93

aichaoxy opened this issue May 4, 2018 · 9 comments

Comments

@aichaoxy
Copy link

aichaoxy commented May 4, 2018

Suppose we have a couple of components that are stateful, now we mount them to tab content.

I know I can change the state of one component, when the tab that contains it is activated. But after switching to another tab and back, the component is re-mounted and the modified state of it is gone.

Maybe it is too much for react-tabtab, but is there a way to maintain the states of all tab content ?

@ctxhou
Copy link
Owner

ctxhou commented May 6, 2018

That's a good point.
The reason why react-tabtab is designed with re-mount mechanism is hoped to handle as many tabs as possible. If it keeps all the panel mounted result, it will cause performance issue.

But yes, I think that's a possible situation when creating tab UI. Maybe it's possible to add a cache props on the tab, it means this panel won't be unmounted. (Of course, it means developers need to handle the performance issue by themselves.

The possible api:

<Tabs>
  <TabList>
    <Tab>Tab1</Tab>
    <Tab cached>Tab2</Tab> // this tab wont be unmount
  </TabList>
  <PanelList>
    <Panel>
      Accusamus enim nisi itaque voluptas nesciunt repudiandae velit. <br/>
      Ad molestiae magni quidem saepe et quia voluptatibus minima. <br/>
      Omnis autem distinctio tempore. Qui omnis eum illum adipisci ab.
    </Panel>
    <Panel>
      Officiis commodi facilis optio eum aliquam.<br/>
      Tempore libero sit est architecto voluptate. Harum dolor modi deleniti animi qui similique facilis. Sit delectus voluptatem praesentium recusandae neque quo quod.
    </Panel>
  </PanelList>
</Tabs>

What do you think?

@aichaoxy
Copy link
Author

aichaoxy commented May 7, 2018

Yeah, I think it's a great solution when the effects of the performance issue are limited.

Some tabs with heavy component and lots of middle states can be set with cache prop, and other tabs can be set without the prop.

@aichaoxy
Copy link
Author

aichaoxy commented May 7, 2018

About how to handle performance issues, I think it deserves detailed discussion.
Many small but useful usage tips can be brought out.

@dineshnamburi
Copy link

Hi @ctxhou , is there any plan to add a feature like cached prop to this module, in near future???

@ctxhou
Copy link
Owner

ctxhou commented May 22, 2018

Hi @dineshnamburi, I will try to add this feature in recent. Maybe next month.
If you have any idea of this feature, any help and PR is welcome.

@qqdaiyu55
Copy link

@ctxhou Any plan on implementing the feature? Thanks.

@ctxhou
Copy link
Owner

ctxhou commented Oct 13, 2018

Hi @qqdaiyu55
I am a little busy recently. Are you interested in implementing this issue?

@qqdaiyu55
Copy link

@ctxhou Sorry I'm also busy recently, I'll take a look if I have time. If you have any idea on implementing this feature, you can post it here : )

@sandipbgt
Copy link

Any update on it? or any possible solution or hack for now?

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

No branches or pull requests

5 participants