微信小程序の親コンポーネントから子コンポーネントに値を渡す方法は?
微信小程序で親コンポーネントと子コンポーネント間で値を渡すには、以下の方法があります。
- 親コンポーネントで`props`を通じて子コンポーネントにデータを渡す場合、子コンポーネントの`props`プロパティで対応するプロパティ名を定義し、`this.props`から渡された値を取得します。
親コンポーネント内のwxmlコード:
<child-component value="{{value}}"></child-component>
親コンポーネントの JS コード:
Page({
data: {
value: 'Hello World'
}
})
子コンポーネント内におけるJSコード
Component({
properties: {
value: {
type: String,
value: ''
}
},
methods: {
getValue() {
console.log(this.properties.value); // 输出:Hello World
}
}
})
- イベント発火:子コンポーネントは triggerEvent メソッドによりカスタムイベントを発火し、渡したい値をパラメータとして親コンポーネントに渡し、親コンポーネントではこのイベントをリッスンして渡された値を取得します。
親コンポーネントのwxml
<child-component bind:myevent="handleEvent"></child-component>
ファザーコンポーネント側のJSコード:
Page({
handleEvent(event) {
console.log(event.detail); // 输出:Hello World
}
})
子コンポーネントの JS コード:
Component({
methods: {
sendValue() {
this.triggerEvent('myevent', 'Hello World');
}
}
})
- グローバル値の受け渡し:getAppメソッドを使用してミニプログラムインスタンスを取得し、インスタンス内でグローバル変数を定義し、そのグローバル変数を介して親子コンポーネント間でデータを受け渡す。
親コンポーネントのjsコード:
const app = getApp();
Page({
data: {
value: ''
},
onLoad(options) {
app.globalData.value = 'Hello World';
},
getValue() {
console.log(app.globalData.value); // 输出:Hello World
}
})
子コンポーネントのJSコード:
const app = getApp();
Component({
methods: {
getValue() {
console.log(app.globalData.value); // 输出:Hello World
}
}
})
父子コンポーネント間のデータ伝達の一般的な3つの方法は以上です。特定のニーズに基づいて、適切な方法を選択してデータを送信してください。