Files
houhaoyu 6e6d50c142 houhaoyu@huawei.com
Signed-off-by: houhaoyu <houhaoyu@huawei.com>
Change-Id: Ie6bc8a1f0c89097de10ec2befecde0e319ea336d
2021-11-23 15:58:32 +08:00

63 lines
1.9 KiB
Plaintext

/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@Component
@Entry
struct ParentComponent {
@State countDownStartValue: number = 10; // 10 Nuggets default start value in a Game
build() {
Column() {
Text(`Grant ${this.countDownStartValue} nuggets to play.`)
Button() {
Text("+1 - Nuggets in New Game")
}.onClick(() => {
this.countDownStartValue += 1
})
Button() {
Text("-1 - Nuggets in New Game")
}.onClick(() => {
this.countDownStartValue -= 1
})
// when creatng ChildComponent, the initial value of its @Prop variable must be supplied in a named constructor parameter
// also regular costOfOneAttempt (non-Prop) variable is initialied
CountDownComponent({ count: this.countDownStartValue, costOfOneAttempt: 2 })
}
}
}
@Component
struct CountDownComponent {
@Prop count: number
costOfOneAttempt?: number
build() {
Column() {
if (this.count> 0) {
Text(`You have ${this.count} Nuggets left`)
} else {
Text("Game over!");
}
Button() {
Text("Try again")
}.onClick(() => {
this.count -= this.costOfOneAttempt;
})
}
}
}