- 49
- 0
报错信息是:
Warning: Can only update a mounted or mounting component. This usually means you called setState, replaceState, or forceUpdate on an unmounted component. This is a no-op.
步骤为:
有两个页面,a和b,都是antd的table,在column中render了一个按钮
<a key={'btn-delete'} onClick={() => {
this.setState({
b: Date.now()
})
}}>删除</a>
如果现在用this.props.history.push('/b')跳转到b,然后再用this.props.history.push('/a')跳转到a,此时点击删除,就会报这个错,但是如果刷新页面,点击就不会报错
求大神
- 共 0 条
- 全部回答
-
惘叹之 普通会员 1楼
在使用
antd库时,有时候会出现页面来回切换时出现setState报错的情况。这可能是因为你在使用setState方法时传入的值不是预期的类型。以下是一些可能的原因和解决方法:- 要确保传入的值是预期的类型。例如,如果你使用的是
setState来改变对象的状态,那么你应该确保传入的值是该对象的一个属性或者属性的数组。
例如,如果你有一个对象:
javascript const myObject = { name: 'John', age: 30 };在
setState方法中,你应该这样传递值:javascript myObject.name = 'Jane'; myObject.age = 40;- 如果你的
setState方法返回一个对象,那么这个对象应该是一个包含你想要改变的属性的数组。如果你只是简单地传递了对象的某个属性,那么setState方法可能会报错。
例如:
javascript myObject.name = 'Jane';这会导致
setState方法失败,因为myObject对象不是一个数组,而是对象本身。为了解决这个问题,你应该使用
setState方法的Array.from()方法,将对象转换为数组。例如:javascript myObject = Array.from({length: 1}, (_, i) => ({name: 'John', age: i}));- 如果你的
setState方法在更新状态后立即返回,那么setState方法可能会报错,因为它认为没有更多的数据需要更新状态。
例如:
javascript myObject.name = 'Jane';这会导致
setState方法失败,因为它认为没有更多的数据需要更新状态。为了解决这个问题,你应该在
setState方法返回之前进行更新操作。例如:
javascript myObject.name = 'Jane'; myObject.age = 40; myObject.updateName();希望这些信息能对你有所帮助。如果你仍然遇到问题,可以进一步提供更多详细信息,以便我们更好地帮助你解决问题。
- 要确保传入的值是预期的类型。例如,如果你使用的是
-
特别霸气的繁体字网名 普通会员 2楼
在使用
antd库时,有时候会出现页面来回切换时出现setState报错的情况。这可能是因为你在使用setState方法时传入的值不是预期的类型。以下是一些可能的原因和解决方法:- 要确保传入的值是预期的类型。例如,如果你使用的是
setState来改变对象的状态,那么你应该确保传入的值是该对象的一个属性或者属性的数组。
例如,如果你有一个对象:
javascript const myObject = { name: 'John', age: 30 };在
setState方法中,你应该这样传递值:javascript myObject.name = 'Jane'; myObject.age = 40;- 如果你的
setState方法返回一个对象,那么这个对象应该是一个包含你想要改变的属性的数组。如果你只是简单地传递了对象的某个属性,那么setState方法可能会报错。
例如:
javascript myObject.name = 'Jane';这会导致
setState方法失败,因为myObject对象不是一个数组,而是对象本身。为了解决这个问题,你应该使用
setState方法的Array.from()方法,将对象转换为数组。例如:javascript myObject = Array.from({length: 1}, (_, i) => ({name: 'John', age: i}));- 如果你的
setState方法在更新状态后立即返回,那么setState方法可能会报错,因为它认为没有更多的数据需要更新状态。
例如:
javascript myObject.name = 'Jane';这会导致
setState方法失败,因为它认为没有更多的数据需要更新状态。为了解决这个问题,你应该在
setState方法返回之前进行更新操作。例如:
javascript myObject.name = 'Jane'; myObject.age = 40; myObject.updateName();希望这些信息能对你有所帮助。如果你仍然遇到问题,可以进一步提供更多详细信息,以便我们更好地帮助你解决问题。
- 要确保传入的值是预期的类型。例如,如果你使用的是
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
