无法在反应原生中分配给#<Object>的只读属性'props'

boz*_*mob 14 javascript reactjs react-native

无法分配给#的只读属性'props'

我查了#1654没有成功.请在此详细了解这个问题 -

错误的屏幕截图

基本上我正在做的是使用导航器从索引页面移动到ApplistGridView页面.我看到导航成功(来自日志)但是,甚至在我看到屏幕之前我就遇到了这个问题.

和chrome调试消息 -

Chrome调试消息

代码发布在Github 还没有找到解决方案.我究竟做错了什么?

Tho*_*mas 11

this.props.nav.push({id: 'Applist', index: 2});由于组件属性是只读的,因此您无法推送到道具,因为错误说明了这一点.道具只能从父组件派生,但不能修改.

编辑:这篇文章是一个很好的起点,让人们在这件事情上感到困惑,因为我刚才... :) https://reactjs.org/docs/thinking-in-react.html


CPH*_*hon 7

如果这种情况发生在你身上不是因为props而是因为state,你可能会尝试做这样的分配:

this.state.nav = 'whatever';
Run Code Online (Sandbox Code Playgroud)

请记住,React 中的赋值state应该类似于:

this.setState({
  nav: 'whatever'
});
Run Code Online (Sandbox Code Playgroud)