当前位置: 首页 > 面试题库 >

在react.js中渲染后滚动到页面顶部

艾焱
2023-03-14
问题内容

我有一个问题,我不知道如何解决。在我的react组件中,我在底部显示一长串数据和少量链接。单击任何此链接后,我将在列表中添加新的链接集合,并需要滚动到顶部。

问题是- 呈现新集合 如何滚动到顶部?

'use strict';

// url of this component is #/:checklistId/:sectionId

var React = require('react'),
  Router = require('react-router'),
  sectionStore = require('./../stores/checklist-section-store');


function updateStateFromProps() {
  var self = this;
  sectionStore.getChecklistSectionContent({
    checklistId: this.getParams().checklistId,
    sectionId: this.getParams().sectionId
  }).then(function (section) {
    self.setState({
      section,
      componentReady: true
    });
  });

    this.setState({componentReady: false});
 }

var Checklist = React.createClass({
  mixins: [Router.State],

  componentWillMount: function () {
    updateStateFromProps.call(this);
  },

  componentWillReceiveProps(){
    updateStateFromProps.call(this);
   },

render: function () {
  if (this.state.componentReady) {
    return(
      <section className='checklist-section'>
        <header className='section-header'>{ this.state.section.name }   </header>
        <Steps steps={ this.state.section.steps }/>
        <a href=`#/${this.getParams().checklistId}/${this.state.section.nextSection.Id}`>
          Next Section
        </a>
      </section>
    );
    } else {...}
  }
});

module.exports = Checklist;

问题答案:

由于原始解决方案是为 react的 早期版本提供的,因此这里进行了更新:

constructor(props) {
    super(props)
    this.myRef = React.createRef()   // Create a ref object 
}

componentDidMount() {
  this.myRef.current.scrollTo(0, 0);
}

render() {
    return <div ref={this.myRef}></div> 
}   // attach the ref property to a dom element


 类似资料:
  • 问题内容: 每次在React.js中执行渲染时,UI都会滚动到页面顶部。 JSFiddle:http : //jsfiddle.net/bengrunfeld/dcfy5xrd/ 有什么漂亮或 反应性的 方式可以阻止这种情况吗? 例如,如果用户向下滚动页面,然后按下导致渲染的按钮,则UI将保持与以前相同的滚动位置。 更新:为什么UI滚动到某些渲染的顶部,而不滚动到其他渲染? 问题答案: @floy

  • 我有一个问题,我没有办法解决。在react组件中,我在底部显示了一长串数据和几个链接。在点击任何一个链接后,我用新的链接集合填写列表,并需要滚动到顶部。 问题是-呈现新集合后如何滚动到顶部?

  • 问题内容: 我的下拉列表中有很多复选框,因此此容器具有滚动功能。但是,当我单击任何复选框时,它会自行选择\取消选择,然后更改状态。 因此,问题在于重新渲染后,此容器又回到了顶部。是否可以在渲染后保持容器的滚动而不将其保存到状态? 问题答案: 您可以在提交阶段之前保存滚动位置的“快照”。 getSnapshotBeforeUpdate()显示您正在寻找的种类。 该文档示例将当前滚动位置保存在生命周期

  • 问题内容: 使用Python和Selenium时,我在滚动到网页顶部时遇到问题。 当页面由于某种原因加载时,您将被带到页面底部(这是固定的)。但是,当我尝试滚动到顶部时,它不起作用。 我尝试了以下方法: 和 我也尝试过找到该元素,然后滚动到它: 向下滚动到元素时,上面的scrollIntoView()代码适用。但是,它无法向上滚动。 我已经尝试过运行Chrome驱动程序和PhantomJs。 有什

  • 问题内容: 如何使用JavaScript滚动到页面顶部?即使滚动条立即跳到顶部也是可取的。我不是在寻找平滑的滚动。 问题答案: 如果您不需要更改以进行动画处理,则无需使用任何特殊的插件-我只需要使用本机JavaScript window.scrollTo方法- 传入0,0即可将页面立即滚动到左上角。 参量 x坐标是沿水平轴的像素。 y坐标是沿垂直轴的像素。

  • web-frame 模块可自定义渲染当前网页 进程: 渲染进程​ 例如放大当前页至 200%. 1 const {webFrame} = require('electron') 2 webFrame.setZoomFactor(2) Copied! 方法 webFrame.setZoomFactor(factor) 用途:设置页面的缩放系数 factor Number - 缩放系数 注意:缩放系数