尝试在构造函数中访问对象的数据会返回" undefined"宾语。它适用于ngOnInit()函数,但每次组件启动时都需要数据(将要重置)。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.v7.widget.Toolbar
android:id="@+id/main_toolbar"
app:titleTextAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Light" />
<FrameLayout
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/mainBottomNav"
android:background="@color/list_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_menu"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/add_post_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="?attr/actionBarSize"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:clickable="true"
android:layout_gravity="bottom|end"
android:focusable="true"
android:visibility="visible"
app:elevation="6dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@mipmap/ic_launcher" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:1)
您是否已阅读此documentation?
它说:
通过调用构造函数创建组件/指令后, Angular按以下顺序调用生命周期钩子方法 特定时刻
然后根据执行顺序列出所有方法。
您可以阅读 lifecycle hook 的完整文档,当我们开始使用Angular开发应用程序时,最好知道这一点。
答案 1 :(得分:1)
除了分配给它的初始值之外,您无法在其构造函数中访问组件输入的值。
为什么?
嗯,简单:Angular必须首先创建组件(通过调用其构造函数)。只有这样才能设置输入。如果您尝试在构造函数中使用输入属性,显然它将是undefined
。
在你的情况下,你应该使用ngOnInit
中的值,或者,如果你真的需要它在构造函数中,以另一种方式检索它(通过使用注入的服务,一个全局共享对象......)