Comments (1)
I think I have solved this. The core issue, is that the <SampleTable />
component was re-rendering when you clicked back over to the tab. Using the react profiler I was able to trace the exact reason why it rerendered. It ended up being that the onChange
prop changed when the user refocused the window.
The onChange
prop was tied to the setNewProjectSamples
function. I am really not too sure why that function was changing. It was probably something way upstream triggering some other rerenders while we check for the user's session validity (look into localStorage
, etc).
Anyways. React has a convenient useCallback
hook:
useCallback is a React Hook that lets you cache a function definition between re-renders.
So we can cache that setNewProjectSamples
function in between renders and now the sample table won't re-render.
from pephub.
Related Issues (20)
- Moving to 'config' tab loses all unsaved changes in 'samples' tab HOT 3
- PEPhub won't save a table without `sample_name` HOT 2
- CTRL+K and CTRL+S not working HOT 1
- Cannot add "status" column to PEP HOT 3
- More key bindings HOT 2
- UI checklist for next update
- Add and fix download schema endpoint
- Add docs about schema and validation
- Can we make the `ph_id` column read only?
- Error making new PEP HOT 9
- History interface should have a 'fork' or tag button
- Fork menu is missing helper titles
- Asterisks in New PEP menu are not explained
- Improving the views interface HOT 1
- Mechanism for collecting feedback HOT 2
- Can't save a table after deleting a column HOT 1
- Subsamples tab poisons ability to save projects. HOT 1
- Organizations you belong to should show on org pages HOT 1
- Removing 'name' from config yields unknown error HOT 1
- How do we convert the `handsontable` sample table representation to a PEP-compatible sample table representation? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pephub.