Questions tagged «setstate»



4
setState更新完成后可以执行功能吗?
我对React JS非常陌生(例如,从今天开始)。我不太了解setState的工作方式。我将React和Easel JS结合起来,根据用户输入绘制网格。这是我的JS bin:http://jsbin.com/zatula/edit? js,输出 这是代码: var stage; var Grid = React.createClass({ getInitialState: function() { return { rows: 10, cols: 10 } }, componentDidMount: function () { this.drawGrid(); }, drawGrid: function() { stage = new createjs.Stage("canvas"); var rectangles = []; var rectangle; //Rows for (var x = 0; x < …

13
无法在已卸载的组件上执行React状态更新
问题 我在React中编写一个应用程序,无法避免出现一个超级常见的陷阱,即setState(...)在after之后调用componentWillUnmount(...)。 我非常仔细地查看了我的代码,并尝试放置一些保护子句,但是问题仍然存在,并且我仍在观察警告。 因此,我有两个问题: 我如何从堆栈跟踪中找出哪个特定的组件和事件处理程序或生命周期挂钩负责违反规则? 好吧,如何解决问题本身,因为我的代码在编写时就考虑到了这种陷阱,并且已经在试图防止这种情况的发生,但是某些底层组件仍在生成警告。 浏览器控制台 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. in TextLayerInternal (created by Context.Consumer) in TextLayer …

4
React是否保持状态更新的顺序?
我知道React可以异步并批量执行状态更新以优化性能。因此,在调用以后,您将永远无法相信要更新的状态setState。但是你可以信任的反应更新相同的顺序状态setState被称为对 相同的组件? 不同的组件? 考虑在以下示例中单击按钮: 1.在以下情况下,是否有可能a为假而b为真: class Container extends React.Component { constructor(props) { super(props); this.state = { a: false, b: false }; } render() { return <Button onClick={this.handleClick}/> } handleClick = () => { this.setState({ a: true }); this.setState({ b: true }); } } 2.在以下情况下,是否有可能a为假而b为真: class SuperContainer extends React.Component { constructor(props) …

9
反应setState不更新状态
所以我有这个: let total = newDealersDeckTotal.reduce(function(a, b) { return a + b; }, 0); console.log(total, 'tittal'); //outputs correct total setTimeout(() => { this.setState({dealersOverallTotal: total}); }, 10); console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total newDealersDeckTotal只是一个数字数组,[1, 5, 9]例如,但是this.state.dealersOverallTotal没有给出正确的总数,但是total呢?我什至设置了超时延迟,以查看是否可以解决问题。任何明显的还是我应该发布更多代码?

6
在构建过程中调用setState()或markNeedsBuild
class MyHome extends StatefulWidget { @override State<StatefulWidget> createState() => new MyHomePage2(); } class MyHomePage2 extends State<MyHome> { List items = new List(); buildlist(String s) { setState(() { print("entered buildlist" + s); List refresh = new List(); if (s == 'button0') { refresh = [ new Refreshments("Watermelon", 250), new Refreshments("Orange", 275), …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.