javascript - goBack 函数反应
问题描述
因此,当我按下箭头返回图标时,我想要 goBack 函数“无法读取未定义的属性”,它会返回到 MainSettings COMPONENT
Parent component
const MainSettings=()=> {
const [isSystemOpen, setIsSystemOpen]= React.useState(false)
const {goBack} = this.props.navigation;
function openSystem(){
setIsSystemOpen(true)
}
function closeSystem(){
setIsSystemOpen(false)
}
return (
<div className="mainSettings">
<ComputerIcon onClick={openSystem} />
{isSystemOpen ? <System closeSystem={closeSystem} />: null}
</div>
Child Component
const System =(props)=> {
return (
<div className='mainSystem'>
<ArrowBackIcon className='arrow'onClick={this.props.navigation.goBack()}
解决方案
您的代码有几个问题。
您正在使用this
功能组件。不需要this
在函数组件中使用,所以props
在你想达到的时候使用。
例如,在您的MainSettings
组件中,您正在尝试获取您不应该props
使用的组件this.props.navigation
。您可以通过以下方式获得它:
const MainSettings = (props) => ...
然后像这样使用:
const { goBack } = props.navigation;
您没有goBack
作为道具传递给您的子组件。所以,你应该这样做:
<System closeSystem={closeSystem} goBack={goBack} />
您不应该goBack
在onClick
处理程序上调用您的函数。您可以使用参考:
<ArrowBackIcon className='arrow' onClick={props.navigation.goBack}
推荐阅读
- three.js - 三.js变换控件线条太细
- android - 在 Textview 中加载包含图像的 HTML 文件
- asp.net-mvc - .net MVC 将嵌套模型发布到控制器,数据集为空
- angular-material - 未定义标识符“categoryName”。'Array' 不包含这样的成员
- docker - 如何在 aerokube selenoid docker 映像上启动文件服务器
- openstack - 无法对 openstack 运行实例进行 ssh
- php - 防止 dql 加入实体
- sorting - 如何在 COGNOS Graph 中对月份(如 APR-17、APR-18、AUG-17、DEC-18、DEC17)应用升序排序
- c# - 无法访问类变量 C#
- encryption - 始终加密不适用于加入查询