事前準備
以下の API を使用するには、JavaScript の基本知識が必要です。一般的なデータ型、変数と関数の宣言・使用に精通し、JavaScript によくある落とし穴を回避する方法を理解している必要があります。
以下の API に頻繁に登場する this.state、this.setState、this.$() を例にします。イベントハンドラー関数のトップレベルに this が現れる場合、正しい実行コンテキストを指しているため、データソースの読み書きや他のフォームフィールドの値の読み取りを問題なく行えます。
this が現れる場合、依然として正しいコンテキストを指しているか確認する必要があります。
JavaScript のはじめにガイド:
グローバル変数 API
YiDA のデザインパターンは React から大きな影響を受けています。ページレベルの状態管理のためのグローバル変数と、ページの再レンダリングをトリガーする対応の API を提供しています(詳細はグローバル変数ドキュメントを参照してください)。this.state.xxx
グローバル変数の値を取得します(React の API と同じです)。xxx は通常、ページレベルのデータソースの変数名です。
例:
this.setState()
グローバル変数の値を設定し、ページの再レンダリングをトリガーします(React の API とほぼ同じです)。 注意:this.state.a = b を使用して変数を変更しないでください。将来のアップデートで互換性が保証されず、コードが動作しなくなる可能性があります。
例:
リモートデータ API
YiDA はリモートデータソースの設定に対応しており、JS からリモートデータソースの呼び出しをトリガーする API を提供しています(詳細はリモート API ドキュメントを参照してください)。this.dataSourceMap.xxx.load()
指定したリモート API を手動で呼び出します。xxx はデータソースパネルで設定したデータソース名です。リクエストパラメータを渡すこともでき、ここで渡されたパラメータはデータソースで設定されたものとマージされてからリクエストが送信されます。load は Promise を返します。
例:
this.reloadDataSource()
自動読み込みオプションが true に設定されたすべてのリモート API を再読み込みします。このメソッドも Promise を返します。 例:JS 呼び出し API
YiDA は JS コードを記述するためのアクションパネルを提供しています。アクションパネル内の関数は変数やアクションにバインドでき、また相互に呼び出すこともできます。this.methodName()
YiDA はアクションパネル内の他の JS 関数を呼び出す方法を提供しています。this.xxx() を呼び出します。ここで xxx は他の関数の名前です。
例:
ユーティリティ API
YiDA には、一般的な機能を簡単に実装できるよう、多くの組み込みユーティリティ関数が用意されています。this.utils.dialog()
ダイアログを開きます。効果は以下の通りです。ユーザーが手動で閉じる必要があります。 YiDA は内部で Fusion コンポーネントを使用しているため、Dialog コンポーネントがサポートするあらゆるプロパティを設定できます。 ドキュメント。よく使用されるプロパティは以下の通りです。
例:
this.utils.formatter()
日付、通貨、電話番号などをフォーマットするための一般的なフォーマッタ関数です。 例:this.utils.getDateTimeRange(when, type)
現在または指定した日付範囲の開始・終了タイムスタンプを取得します。when と type は共に任意です。デフォルトでは当日の開始と終了を返します。日付と範囲タイプを指定することもできます。
例:
this.utils.getLocale()
現在のページのロケールを取得します。 例:this.utils.getLoginUserId()
サインイン中のユーザーの ID を取得します。 例:this.utils.getLoginUserName()
サインイン中のユーザーの名前を取得します。 例:this.utils.isMobile()
現在の環境がモバイルデバイスかどうかを確認します。 例:this.utils.isSubmissionPage()
現在のページがデータ送信ページかどうかを確認します。 例:this.utils.isViewPage()
現在のページがデータ表示ページかどうかを確認します。 例:this.utils.loadScript()
リモートスクリプトを動的に読み込みます。 例:this.utils.openPage()
新しいページを開きます。 DingTalk 環境では、DingTalk API を使用して新しいページを開き、よりスムーズな体験を提供します。 例:this.utils.previewImage()
画像をプレビューします。この API は以下のような軽量な画像プレビュー体験を提供します。 例:this.utils.toast()
軽量なメッセージを表示します。Dialog と比較して、トーストはより軽量で、以下のように短時間経過後に自動的に消えます。 パラメータ:
例:
ルーティング API
YiDA はルーティング情報の取得とページ間ナビゲーションのための API を提供しています。これらの API は react-router の上に構築されているため、ナビゲーション API は react-router の API とほぼ一致しています。YiDA はさらに、いくつかのルーティング拡張も提供しています。this.utils.router.push()
新しいページに遷移し、エントリをルーティングスタックにプッシュします。これにより、ユーザーはブラウザの戻るボタンで前のページに戻れます。push のパラメータは以下の通りです。
例:
this.utils.router.replace()
現在のページを置き換えます。router.push とは異なり、この API は新しいページをプッシュするのではなく現在のページを置き換えるため、ブラウザの戻るボタンでは元に戻せません。以下と同等です。
this.utils.router.getQuery()
現在のページの URL パラメータを取得します。key が指定されている場合は対応する値を返し、それ以外の場合はすべての URL パラメータを返します。getQuery のパラメータ:
例:
this.utils.router.stringifyQuery()
URL パラメータをシリアライズし、オブジェクトを URL クエリ文字列に変換します。 例:共通コンポーネント API
コンポーネント固有の API に入る前に、いくつかの概念を事前に紹介します。- コンポーネント一意識別子(fieldId)— YiDA はすべてのコンポーネントに一意識別子を割り当ててコンポーネントインスタンスを区別します。識別子はコンポーネントプロパティパネルで確認できます。
- コンポーネントプロパティ(prop)— YiDA では、すべてのコンポーネントがさまざまな動作を可能にするためのプロパティを公開しています(React の props と同様)。コンポーネントプロパティパネル上のコントロールにホバーすると、対応するプロパティ名が表示されます。
this.$(fieldId).get(prop)
fieldId でコンポーネントを検索し、そのプロパティ値の 1 つを読み取ります。fieldId はコンポーネント一意識別子で、prop はコンポーネントプロパティ名です。
注意:this.$(fieldId).xxx を使用してプロパティ値を読み取らないでください。将来のアップデートで互換性が保証されず、コードが動作しなくなる可能性があります。
例:
this.$(fieldId).set(prop, value)
fieldId でコンポーネントを検索し、そのプロパティ値の 1 つを設定します。fieldId はコンポーネント一意識別子、prop はプロパティ名、value は設定する値です。
注意:this.$(fieldId).xxx = xxx を使用してプロパティ値を設定しないでください。将来のアップデートで互換性が保証されず、コードが動作しなくなる可能性があります。
例:
フォームコンポーネント API
フォームコンポーネントは YiDA プラットフォームで最も重要なコンポーネントの種類です。通常、データの収集に使用されます。例えば、テキストフィールド、単一選択、複数選択、ドロップダウン選択などです。このセクションでは、フォームコンポーネントに関連する API について説明します。this.$(fieldId)
コンポーネントインスタンスを取得します。ここでfieldId はコンポーネント一意識別子です。コンポーネント API を呼び出す前に、通常は this.$(fieldId) を通じてコンポーネントインスタンスを取得する必要があります。
注意:this.$(fieldId).xxx を通じてドキュメント化されていない API やプロパティにアクセスしないでください。ドキュメント化されていないものは、内部のプライベートな実装です。将来のアップデートで互換性が保証されず、コードが動作しなくなる可能性があります。
this.$(fieldId).getValue()
指定したフォームコンポーネントの入力値を取得します。 例:this.$(fieldId).setValue()
指定したフォームコンポーネントの入力値を設定します。setValue のパラメータ:
this.$(fieldId).reset()
指定したフォームコンポーネントの入力値をリセットします。reset のパラメータ:
this.$(fieldId).getBehavior()
指定したフォームコンポーネントの現在の状態を取得します。取り得る状態:- NORMAL — 通常の状態(編集可能)。
- READONLY — 閲覧のみの状態。
- DISABLED — 無効の状態。
- HIDDEN — 非表示の状態。
this.$(fieldId).setBehavior()
指定したフォームコンポーネントの状態を設定します。使用可能な状態はgetBehavior セクションで説明しています。
例:
this.$(fieldId).resetBehavior()
指定したフォームコンポーネントの状態をリセットします。 例:this.$(fieldId).validate()
指定したフォームコンポーネントで検証を 1 回実行します。validate のパラメータ:
this.$(fieldId).disableValid()
フォームコンポーネントの検証を無効にします。 例:this.$(fieldId).enableValid()
フォームコンポーネントの検証を有効にします。enableValid のパラメータ:
this.$(fieldId).setValidation()
フォームコンポーネントの検証ルールを設定します。setValidation のパラメータ:
例:
this.$(fieldId).resetValidation()
フォームコンポーネントの検証ルールをリセットします。setValidation の後に使用して、以前のルールを復元します。resetValidation のパラメータ: