Introduzione all'uso di React all'interno di un componente di Power Apps
React è un framework client standardizzato per la creazione di interfacce utente. Fornisce un modo dichiarativo per creare interfacce utente interattive e un meccanismo per incapsulare i componenti per creare interfacce utente complesse che gestiscono gli stati dei componenti e hanno un'interattività elevata. Poiché React è scritto in JavaScript, è possibile usare questo framework all'interno di un componente di Power Apps.
Gli utenti che non hanno mai usato React possono vedere React, che fornisce una vasta gamma di esercitazioni e risorse su come creare i componenti di React.
Preparazione del computer per i componenti di codice
Per preparare il computer alla creazione di componenti di codice, effettuare i seguenti passaggi:
Installare npm (fornito con Node.js) o Node.js (fornito con npm). È consigliabile usare una versione LTS (supporto a lungo termine).
Installare Visual Studio Code.
Installare l'estensione Power Platform Tools.
Installare Build Tools per Visual Studio dalla pagina dei Download di Visual Studio.
Fluent UI
Uno dei numerosi e importanti sviluppi di Microsoft è stata l'implementazione di Fluent UI, una raccolta di framework per l'esperienza utente che è possibile usare per creare esperienze fluide che si adattano perfettamente a un'ampia gamma di prodotti Microsoft. L'uso di Fluent UI nel componente di codice Power Apps è semplice quanto fare riferimento alle sue raccolte e fornisce una versione specifica per React. Per altre informazioni, vedere Fluent UI.
Implementazione di un componente di FacePile di esempio
Importante
Scaricare il file ZIP FacePileComponent.zip da usare con questo esercizio. Estrarre il file ZIP.
In questo esempio si crea un componente che usa il componente FacePile Fluent UI. FacePile mostra un elenco di volti o iniziali in una vista orizzontale, in cui ogni cerchio rappresenta una persona.
Questa funzionalità viene usata ad esempio quando si devono elencare i collaboratori di un articolo o di un record, come si vede nelle pagine di Microsoft Learn e nell'immagine seguente.
Creazione di un nuovo progetto di componente
Per creare un progetto di componente, effettuare i seguenti passaggi:
Creare una directory in cui inserire il componente. In questo esempio si inserisce il componente in C:\users\username\source\face-pile. È tuttavia possibile creare una propria directory. Per creare la propria directory, usare Visual Studio Code.
Avviare Visual Studio Code.
Selezionare Terminale, Nuovo terminale e cambiare la shell del Terminale nel Prompt dei comandi.
Nota
Se non si ha familiarità con il Terminale in Visual Studio Code, vedere le Nozioni di base sul Terminale per ulteriori informazioni.
Creare la cartella di origine.
md \sourceCambiare la directory passando alla cartella di origine.
cd \sourceDalla directory di origine creare una directory denominata face-pile.
md face-pileAndare alla directory creata.
cd face-pileOra dovrebbe apparire la nuova directory creata.
Inizializzare il progetto del componente usando l'interfaccia della riga di comando di Power Platform con il seguente comando.
pac pcf init --namespace Learn --name ReactFacePile --template field --framework ReactInstallare gli strumenti di compilazione del progetto con il comando
npm install. Potrebbero apparire alcuni avvisi che è possibile ignorare.npm installEseguire il comando riportato di seguito per aprire il progetto in Visual Studio Code.
code -a .Il progetto deve essere simile a quello mostrato nell'immagine seguente.
Implementazione della logica del componente di codice
Per implementare la logica del componente di codice, effettuare i seguenti passaggi:
Espandere la cartella ReactFacePile e aprire il file ControlManifest.Input.xml.
Individuare il nodo proprietà e sostituirlo con il seguente codice XML.
<property name="numberOfFaces" display-name-key="numberOfFaces_Display_Key" description-key="numberOfFaces_Desc_Key" of-type="Whole.None" usage="bound" required="false" />Individuare risorse e rimuovere il commento per css e resx.
Assicurarsi che il file ControlManifest.Input.xml sia ancora selezionato, quindi selezionare New Folder.
Assegnare alla nuova cartella il nome components.
Andare alla cartella in cui si è estratto il file FacePileComponent.zip scaricato e aprire la cartella FacePileComponent.
Trascinare i file all'interno della cartella FacePileComponents e rilasciarli nella cartella components creata.
Ora la cartella components dovrebbe contenere due file.
Aprire il file Index.ts.
Sostituire import { HelloWorld, IHelloWorldProps } from "./HelloWorld"; con questo frammento.
import { FacepileBasicExample, IFacepileBasicExampleProps } from "./components/Facepile" ;Dopo le importazioni, aggiungere la seguente costante.
const DEFAULT_NUMBER_OF_FACES = 3;Aggiungere il frammento prima del constructor.
private props: IFacepileBasicExampleProps = { numberFacesChanged: this.numberFacesChanged.bind(this), };Le modifiche apportate dovrebbero essere simili a quelle presentate nell'immagine seguente.
Individuare il metodo init e aggiungere il frammento seguente dopo la riga this.notifyOutputChanged = notifyOutputChanged;
this.props.numberOfFaces = context.parameters.numberOfFaces.raw || DEFAULT_NUMBER_OF_FACES;Sostituire il metodo updateView con il metodo riportato di seguito.
public updateView(context: ComponentFramework.Context<IInputs>): React.ReactElement { if (context.updatedProperties.indexOf("numberOfFaces") > -1) { this.props.numberOfFaces = context.parameters.numberOfFaces.raw || DEFAULT_NUMBER_OF_FACES; } return React.createElement(FacepileBasicExample, this.props); }I metodi init e updateView dovrebbero essere simili a quelli presentati nell'immagine seguente.
Sostituire il metodo getOutputs con il metodo seguente.
public getOutputs(): IOutputs { return { numberOfFaces: this.props.numberOfFaces, }; }Aggiungere il metodo riportato di seguito dopo il metodo destroy.
private numberFacesChanged(newValue: number) { if (this.props.numberOfFaces !== newValue) { this.props.numberOfFaces = newValue; this.notifyOutputChanged(); } }Selezionare File e Salva tutto per salvare tutte le modifiche.
Aggiunta di stili al componente di codice
Per aggiungere stili al componente di codice, effettuare i seguenti passaggi:
Selezionare il file ControlManifest.Input.xml e quindi New Folder.
Assegnare alla nuova cartella il nome css.
Selezionare la cartella css creata e quindi Nuovo file.
Assegnare al nuovo file il nome ReactFacePile.css.
Aprire il file ReactFacePile.css creato e incollare il seguente frammento CSS.
msFacepileExample { max-width: 300px; } .msFacepileExample .control { padding-top: 20px; } .msFacepileExample .ms-Dropdown-container, .msFacepileExample.ms-Slider { margin: 10px 0 10px 0; } .msFacepileExample .ms-Dropdown-container .ms-Label { padding-top: 0; } .msFacepileExample .ms-Checkbox { padding-top: 15px; } .exampleCheckbox { margin: 10px 0; } .exampleLabel { margin: 10px 0; }Selezionare File e Salva per salvare le modifiche.
Selezionare il file ControlManifest.Input.xml e quindi New Folder.
Assegnare alla nuova cartella il nome strings.
Andare alla cartella in cui si è estratto il file FacePileComponent.zip scaricato e aprire la cartella FacePileStrings.
Trascinare il file ReactFacePile.1033.resx e rilasciarlo nella cartella strings creata.
A questo punto la cartella strings dovrebbe contenere il file RESX.
Selezionare File e Salva per salvare le modifiche.
Andare al terminale ed eseguire questo comando build.
npm run buildNota
Se un errore segnala che JSX non è definito, aprire il file .eslintrc.json. Alla riga 11,
"ComponentFramework": true, aggiungere una virgola e una nuova riga con"JSX": true. Alla riga 41: cambiareJSX.ElementinReact.JSX.Element. Salvare le modifiche e ripetere il comando npm run build.La compilazione dovrebbe avvenire correttamente.
Testare i componenti eseguendo il comando riportato di seguito.
npm startIl test harness dovrebbe aprire una nuova finestra del browser.
Il componente deve essere simile a quello mostrato nell'immagine riportata di seguito.
Cambiare le dimensioni del contenitore impostandole su 500 x 220 e spostare il dispositivo di scorrimento su 5.
Il componente dovrebbe ora essere simile a quello mostrato nell'immagine seguente. Chiudere la finestra del browser del test harness.
Chiudere la finestra del browser del test harness.
Tornare al terminale e interrompere il Watcher premendo CTRL+C.
Digitare Y, quindi premere INVIO.
Per altre informazioni, vedere Implementazione del componente FacePile.