草庐IT

setstate

全部标签

javascript - 在 React 中触发函数之前如何等待 setState 完成?

这是我的情况:我在this.handleFormSubmit()上执行this.setState()在this.handleFormSubmit()中,我调用this.findRoutes();-这取决于this.setState()的成功完成this.setState();在调用this.findRoutes之前未完成...如何在调用this.findRoutes()之前等待this.handleFormSubmit()中的this.setState()完成?低于标准的解决方案:将this.findRoutes()放在componentDidUpdate()中这是NotAccepta

javascript - componentDidUpdate() 内部的 setState()

我正在编写一个脚本,根据下拉菜单的高度和输入在屏幕上的位置,将下拉菜单移动到输入下方或上方。我还想根据其方向将修饰符设置为下拉列表。但是在componentDidUpdate内部使用setState会创建一个无限循环(这是显而易见的)我找到了使用getDOMNode并直接将类名设置为下拉列表的解决方案,但我觉得应该有使用React工具的更好解决方案。谁能帮帮我?这是使用getDOMNode的工作代码的一部分(我稍微忽略定位逻辑以简化代码)letSearchDropdown=React.createClass({componentDidUpdate(params){letel=this.

reactjs - React.js 中的 setState 与 replaceState

我是React.js库的新手,我正在复习一些教程,我遇到了:this.setStatethis.replaceState给出的描述不是很清楚(IMO)。setStateisdoneto'set'thestateofavalue,evenifitsalreadysetinthe'getInitialState'function.同样,ThereplaceState()methodisforwhenyouwanttoclearoutthevaluesalreadyinstate,andaddnewones.我试过this.setState({data:someArray});之后是this

javascript - 为什么 reactjs 中的 setState 是 Async 而不是 Sync?

我刚刚发现,在React中,任何组件中的this.setState()函数都是异步的,或者在调用它的函数完成后被调用。现在我搜索并找到了这个博客(setState()StateMutationOperationMayBeSynchronousInReactJS)在这里,他发现setState是异步的(当堆栈为空时调用)或同步的(调用后立即调用),具体取决于状态更改的触发方式。现在这两件事很难消化在博客中,setState函数在函数updateState中被调用,但是触发updateState函数的不是调用函数会知道的。他们为什么要使setState异步,因为JS是单线程语言,而此set

javascript - setState更新完成后可以执行函数吗?

我是ReactJS的新手(今天才开始)。我不太明白setState是如何工作的。我正在结合React和EaselJS来根据用户输入绘制网格。这是我的JSbin:http://jsbin.com/zatula/edit?js,output代码如下:varstage;varGrid=React.createClass({getInitialState:function(){return{rows:10,cols:10}},componentDidMount:function(){this.drawGrid();},drawGrid:function(){stage=newcreatejs.

dart - 调用 setState 后如何防止 Flutter 应用滚动到顶部?

我在SingleChildScrollView中有一个ExpansionPanelList。每当我(取消)折叠面板并因此调用setState时,SingleChildScrollView就会滚动回顶部。我怎样才能防止这种情况发生?@overrideWidgetbuild(BuildContextcontext){final_scaffoldKey=newGlobalKey();returnnewScaffold(key:_scaffoldKey,appBar:newAppBar(title:newText(widget.title),),body:newSingleChildScrol

android - 实现 setState 导致 Infinite Loop Flutter

我是Flutter的新手,遇到了状态问题。如果有人可以帮助我,我将不胜感激。所以我最初将Flutter下拉菜单的项目设置为一个列表,我们将其称为Listl它也是值,它将称为变量v。然后在父小部件的开头,在构建之前,我调用一个从sqlflite数据库获取一些信息的方法。当它返回时,我创建一个新的下拉菜单项列表并实现新状态。我将Listl设置为新创建的,并将value设置为List第一项的第一个值,以便下拉菜单重新呈现。这似乎工作正常,除了从数据库获取信息的方法不断被调用导致无限循环。并卡住我的应用程序。有谁知道我做错了什么?非常感谢!//DeclaringvariablesList_cl

Flutter:按下按钮时调用 setState() 两次

我试图在按下按钮时发生一系列事件:用户点击开始按钮按钮文字变为“停止”发生计算,然后更新另一个小部件但似乎onPressed函数只允许一个setState()更新View,因为问题是按钮文本永远不会改变。这是按钮小部件:newRaisedButton(child:Text(_calculating?"Stop":"Start"),onPressed:(){if(_calculating){_setCalculating(false);//stopcalculating}else{_setCalculating(true);_doCalc();}},),这里是回调:void_doCalc

android - 无限滚动 ListView - 在构建期间调用 setState() 或 markNeedsBuild

我正在创建一个无限滚动的listView,我想在_loadNames函数中使用setState将_loadingState字符串从'loading...'更改为'loaded',但是当从itemBuilder调用_loadNames时,我得到“在构建错误期间调用的setState”。使用RefreshIndicator工作正常并更新项目,但滚动到底部会导致错误。我怎样才能从ListViews构建器调用_loadNames而不会出现错误,或者我可以使用什么其他方法。注意:不想使用redux或bloc。class_HomePageStateextendsState{Listnames=[]

android - Flutter setState 改变,但不重新渲染

我创建了一个简单的屏幕,它采用字母列表并将它们呈现在网格中。我有一个带有随机播放方法的按钮,可以随机播放这个列表。在我的构建方法中,我看到状态正在使用新列表进行更新,并且每次按下按钮时都会打印出一个随机列表,但屏幕不会改变。class_LetterContainerStateextendsState{List_letters=['D','A','B','C','E','F','G','H'];voidshuffle(){varrandom=newRandom();ListnewLetters=_letters;for(vari=newLetters.length-1;i>0;i--){