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

时间:2015-11-24 18:15:52

标签: javascript reactjs react-native

无法分配给#

的只读属性'props'

我检查#1654但没有成功。请在此处详细了解该问题 -

Screenshot of error

基本上我正在做的是使用Navigator从索引页面移动到ApplistGridView页面。 我看到导航成功(来自日志),但是,即使在我看到屏幕之前,我也面临这个问题。

Chrome调试消息 -

Chrome Debug messages

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

5 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:1)

只有一件事:

npm install typescript@4.0.5

重启服务器

答案 2 :(得分:0)

如果发生这种情况不是因为道具,而是因为状态,则您可能正在尝试执行以下任务:

this.state.nav = 'whatever';

请记住,React中对state的分配应类似于:

this.setState({
  nav: 'whatever'
});

答案 3 :(得分:0)

您写了this.props.nav.push({id: 'Applist', index: 2});

但是this.props是只读的;您无法修改它。

如果要将一些值传递给父react组件,则可以在子组件中使用this.prop.onSomeEvent(value)。然后在父组件中处理推送过程。

答案 4 :(得分:0)

在文件node_modules \ react-scripts \ scripts \ utils \ verifyTypeScriptSetup.js中 更改 ts.JsxEmit.ReactJsx 至 ts.JsxEmit.ReactJSX