我在本地反应中遇到问题:
checkPositionComponant = (id) => {
this.refs.component.measure((a, b, width, height, pageX, pageY) => {
tabTag[id].positionY = pageY;
});
}
componentTag() {
return tabTag.map((item, id) => {
return(
<View key={id} style={styles.componentView} ref="component">
{ this.checkPositionComponant(id) }
</View>
);
});
}
我的错误是:TypeError:无法读取属性&#39;测量&#39;未定义的
答案 0 :(得分:3)
您在多个组件上使用相同的参考
来自react docs:
永远不要访问任何组件的render方法中的refs - 或者当任何组件的render方法甚至在调用堆栈中的任何位置运行时。
您可能希望将代码与react的生命周期对齐并使用
componentDidMount() {
this.checkPositionComponant(id);
}
checkPositionComponant
应该更改状态(setState / dispatch)以便组件重新呈现。
查看this example。
答案 1 :(得分:0)
我遇到了同样的错误。 这在ios中工作正常,但对于android,除非未返回,否则返回undefined 您在 onLayout 属性上放置了空的回调。 您可以在视图组件中执行此操作:-
<header class="home-header">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#logo-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
<!-- Small size logo -->
<img src="images/logo.jpg" alt="site-logo">
</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="logo-navbar-collapse-1">
<form class="navbar-form navbar-left">
<div class="form-group inputWithIcon">
<input type="text" class="form-control" placeholder="Search">
<i class="fa fa-search fa-lg" area-hidden="true"></i>
<div id="search-list2"></div>
</div>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><img src="" alt="my pic"></a></li>
<li class="profile"><a href="profile2.php"><?php echo $_SESSION['USERNAME'] ?></a></li>
<li><a href="#"><i class="notification-icon fa fa-bell"></i></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="sittings-icon fa fa-cog"></i> <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="signout.php">Signout</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
</header>
如果您想了解更多信息,请you can read this issue on github