Comments (3)
Best way to do this is to inform your application in componentDidUpdate that it has finished scrolling to the top, so the subsequent render doesn't set scrollToRow to zero.
Here is a very simple example: https://jsfiddle.net/z2yhpwLh/
Feel free to create your own jsfiddle and we can help you debug it.
from fixed-data-table-2.
hey thanks for the prompt response.
I am using React with Redux so i wanted to somehow keep the scrollToTop
in the state and wanted to have a smooth redux flow. componentDidUpdate
is what I was looking for. Here is how i did it
class CustomTable extends React.Component {
componentWillReceiveProps(nextProps) {
const { tableSettings: newTableSettings } = nextProps;
const { tableSettings: oldTableSettings } = this.props;
this.scrollToRow = null;
// scroll table to top only if scrollTop changed from false -> true
if (!oldTableSettings.scrollToTop && newTableSettings.scrollToTop) {
this.scrollToRow = 0;
}
}
componentDidUpdate() {
// reset scroll state to false if it was true. this is so that we can
// detect the next scrollToTop event
if (this.props.tableSettings.scrollToTop) {
this.props.resetScrollState();
}
}
render() {
return (
<Table
scrollToRow={this.scrollToRow}
>
</Table>
);
}
}
I have removed all the extra data from the above code so that it's easy to understand.
So basically the main logic is that I will only scroll the table to top when the value of scrollToTop
changes from false
to true
. And after the scrollToTop
is changed to true
i will change it back to false
during the componentDidUpdate
lifecycle by dispatching RESET_SCROLL_STATE
action which will change the scrollToTop
state back to false
. Now it will scroll to top only when the event happens.
Let me know what you think about it.
from fixed-data-table-2.
Looks great! Let me know if you see any bugs with that in the future.
from fixed-data-table-2.
Related Issues (20)
- Does it provide infinite scroll? HOT 1
- Resizable rows? HOT 5
- Need drop and play example HOT 3
- Sometimes when scrolling through table rows, I receive warning: Failed prop type: The prop `index` is marked as required in `FixedDataTableRowImpl`, but its value is `null`. HOT 4
- Check the column/cell visibility HOT 9
- Z-index 1 set on column header causes header to overlap other elements HOT 6
- Vertical scroll bar when we have many columns HOT 2
- Cannot read properties of null (reading 'onWheel') HOT 6
- Cannot read properties of null (reading 'setRoot') HOT 4
- React 18 question HOT 4
- "Global is not defined" in React Vite app HOT 2
- Error when refreshing data in table with "smaller" data HOT 5
- Is there a way to implement multi-level headers in Fixed Data Table 2 HOT 3
- When using variable row heights, setting `scrollTop` doesn't work well. Fix proposed HOT 4
- Resize line not shown when "maxHeight" is set. HOT 2
- Column resize doesn't properly work on mobile HOT 11
- Resize vertical bar public in header_ FixedDataTableColumnResizerLine_ Main positioning is not accurate HOT 4
- "site-dev-server" script doesn't work after upgrading to npm 9.8.0 HOT 4
- Scroll to an exact position when clicking the scrollbar track doesn't work in case of variable row heights and isVerticalScrollExact = true HOT 3
- Help with keeping scrollLeft property in components in each row when scrolling vertically. HOT 7
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 fixed-data-table-2.