Inicialização do Eitri-App com Parâmetros¶
Os parâmetros de inicialização permitem que o Eitri-App comece já configurado para um cenário específico no ambiente de desenvolvimento. Você pode passar, por exemplo, o ID de um produto ou o e-mail de um usuário para simular diferentes casos sem alterar o código a cada execução.
Lendo os parâmetros no Eitri-App¶
Dentro do Eitri-App, use Eitri.getInitializationInfos() para obter os parâmetros enviados no start. Eles chegam já convertidos em objeto:
export default function Home() {
useEffect(() => {
getStartParams();
}, []);
const getStartParams = async () => {
const params = await Eitri.getInitializationInfos();
// productId=e4386d93&[email protected]
// => { productId: "e4386d93", email: "[email protected]" }
console.log(params);
}
/**
* demais códigos ocultados
* para facilitar a leitura
*/
}
Enviando os parâmetros¶
Use a opção --initialization-params do eitri start:
eitri start --initialization-params "productId=e4386d93-d6a7-4212-8501-2a99fc9a3f12&[email protected]"
Requer a CLI 1.18.0 ou superior. No arquivo app-config.yaml do eitri app start, adicione a chave initialization-params com type: "string" e o valor no formato query string:
application-id: "4e8448ad-44c3-4504-a03b-4e8fc7ce27dc"
environment-id: "bcf3b8f1-95ee-47d5-9499-8fd7d4689ff0"
eitri-apps:
- alias: equinox
path: "./eitri-app-equinox"
workspace: DEFAULT
focus: true
- alias: cronos
path: "./eitri-app-cronos"
workspace: cronos
initialization-params:
type: "string"
value: "productId=e4386d93-d6a7-4212-8501-2a99fc9a3f12&foo=bar"
Os parâmetros são enviados ao Eitri-App marcado como focus.
Somente query string
Os parâmetros do --initialization-params e da chave initialization-params precisam estar no formato query string (chave=valor&chave2=valor2). JSON enviado nesse campo não chega ao Eitri-App.
Parâmetros por aba (Bottom Bar)¶
Quando o app-config.yaml tem bottom-tab-view-simulation, cada aba pode ter os seus próprios parâmetros, e o Eitri Play ignora os parâmetros globais. Aqui, além de string, você pode usar o tipo json para enviar estruturas aninhadas:
bottom-tab-view-simulation:
eitri-apps:
- slug: "home"
title: "Início"
initialization-params:
type: "string"
value: "tabIndex=0&route=Categories"
bottom-tab-view-simulation:
eitri-apps:
- slug: "search"
title: "Busca"
initialization-params:
type: "json"
value: '{"route":"Search","searchTerm":"bossa"}'
Alterando os parâmetros sem reiniciar¶
Com o eitri start ou o eitri app start em execução, digite p no terminal e pressione enter para trocar os parâmetros na hora, sem precisar parar a CLI:
- A CLI exibe o valor atual para você editar. Deixe vazio para remover os parâmetros.
- Com
bottom-tab-view-simulation, você escolhe antes a aba e o tipo (stringoujson). JSON inválido é recusado antes de ser enviado. - A CLI publica os novos parâmetros. Escaneie o QR Code novamente ou reabra o Eitri-App pelo deeplink para aplicá-los.
Note
- A alteração vale apenas para a sessão atual: o
app-config.yamlnão é modificado. - No
eitri start, a teclapnão está disponível com--playground.
Veja todos os atalhos em Atalhos de teclado.