Chain wire methods together in Lightning Web Components The Next CEO of Stack Overflow2019 Community Moderator ElectionDatabase.query not working with RecordTypeIdWhat are Lightning Web ComponentsWhat are these '@' symbol things in Web components [api, wire]?Change handler equivalent in Lightning Web ComponentsIs there a way to load every label data and every SObject description data in Lightning Web Component using only Javascript without any Apex?Import ES modules in LWCLWC: Picklist without knowing recordTypeIdWhen do @wire methods run (LWC)?Unable to upload a managed package with a generic errorUsing third-party Web Components with Lightning Web Components

Why is information "lost" when it got into a black hole?

Is this "being" usage is essential?

Why is my new battery behaving weirdly?

If Nick Fury and Coulson already knew about aliens (Kree and Skrull) why did they wait until Thor's appearance to start making weapons?

is it ok to reduce charging current for li ion 18650 battery?

Is it my responsibility to learn a new technology in my own time my employer wants to implement?

Unreliable Magic - Is it worth it?

Proper way to express "He disappeared them"

Is there a way to save my career from absolute disaster?

How to avoid supervisors with prejudiced views?

What happens if you roll doubles 3 times then land on "Go to jail?"

Why isn't acceleration always zero whenever velocity is zero, such as the moment a ball bounces off a wall?

How to scale a tikZ image which is within a figure environment

I want to make a picture in physics with TikZ. Can you help me?

Solving system of ODEs with extra parameter

Why, when going from special to general relativity, do we just replace partial derivatives with covariant derivatives?

Why don't programming languages automatically manage the synchronous/asynchronous problem?

Why is the US ranked as #45 in Press Freedom ratings, despite its extremely permissive free speech laws?

WOW air has ceased operation, can I get my tickets refunded?

What flight has the highest ratio of time difference to flight time?

Plot of histogram similar to output from @risk

Are police here, aren't itthey?

What is the value of α and β in a triangle?

Does soap repel water?



Chain wire methods together in Lightning Web Components



The Next CEO of Stack Overflow
2019 Community Moderator ElectionDatabase.query not working with RecordTypeIdWhat are Lightning Web ComponentsWhat are these '@' symbol things in Web components [api, wire]?Change handler equivalent in Lightning Web ComponentsIs there a way to load every label data and every SObject description data in Lightning Web Component using only Javascript without any Apex?Import ES modules in LWCLWC: Picklist without knowing recordTypeIdWhen do @wire methods run (LWC)?Unable to upload a managed package with a generic errorUsing third-party Web Components with Lightning Web Components










1















According to the documentation here in order to retrieve a list of picklist values for an object we need to pass in a Record Type Id which can be retrieved using the getObjectInfo method.



The issue is that these are both wire functions and I cannot figure out how to chain these methods.



If I try code like the following:



getObjectInfo( objectApiName: ACCOUNT_OBJECT )
.then(result =>
return getPicklistValues(recordTypeId: result.defaultRecordTypeId, fieldApiName: TYPE_FIELD);
)
.then(result =>
this.picklistValues = result.data
)
.catch(error =>
this.error = error;
);


I get an error




render threw an error in 'c:getpicklistexample' [Imperative use is not
supported. Use @wire(getObjectInfo).]




If I try something like



@track rtId;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;



@wire(getPicklistValues, recordTypeId: this.rtId,fieldApiName: TYPE_FIELD)
picklistValues;


Then it throws an internal server error. Anybody have an idea as to how I could retrieve the record type Id and then call to get the pick list values like the documentation suggests?



FYI my imports are:



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';









share|improve this question






















  • FYI, aware I could probably do this with apex but the docs suggest that I should be able to do this otherwise.

    – pbattisson
    2 hours ago















1















According to the documentation here in order to retrieve a list of picklist values for an object we need to pass in a Record Type Id which can be retrieved using the getObjectInfo method.



The issue is that these are both wire functions and I cannot figure out how to chain these methods.



If I try code like the following:



getObjectInfo( objectApiName: ACCOUNT_OBJECT )
.then(result =>
return getPicklistValues(recordTypeId: result.defaultRecordTypeId, fieldApiName: TYPE_FIELD);
)
.then(result =>
this.picklistValues = result.data
)
.catch(error =>
this.error = error;
);


I get an error




render threw an error in 'c:getpicklistexample' [Imperative use is not
supported. Use @wire(getObjectInfo).]




If I try something like



@track rtId;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;



@wire(getPicklistValues, recordTypeId: this.rtId,fieldApiName: TYPE_FIELD)
picklistValues;


Then it throws an internal server error. Anybody have an idea as to how I could retrieve the record type Id and then call to get the pick list values like the documentation suggests?



FYI my imports are:



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';









share|improve this question






















  • FYI, aware I could probably do this with apex but the docs suggest that I should be able to do this otherwise.

    – pbattisson
    2 hours ago













1












1








1








According to the documentation here in order to retrieve a list of picklist values for an object we need to pass in a Record Type Id which can be retrieved using the getObjectInfo method.



The issue is that these are both wire functions and I cannot figure out how to chain these methods.



If I try code like the following:



getObjectInfo( objectApiName: ACCOUNT_OBJECT )
.then(result =>
return getPicklistValues(recordTypeId: result.defaultRecordTypeId, fieldApiName: TYPE_FIELD);
)
.then(result =>
this.picklistValues = result.data
)
.catch(error =>
this.error = error;
);


I get an error




render threw an error in 'c:getpicklistexample' [Imperative use is not
supported. Use @wire(getObjectInfo).]




If I try something like



@track rtId;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;



@wire(getPicklistValues, recordTypeId: this.rtId,fieldApiName: TYPE_FIELD)
picklistValues;


Then it throws an internal server error. Anybody have an idea as to how I could retrieve the record type Id and then call to get the pick list values like the documentation suggests?



FYI my imports are:



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';









share|improve this question














According to the documentation here in order to retrieve a list of picklist values for an object we need to pass in a Record Type Id which can be retrieved using the getObjectInfo method.



The issue is that these are both wire functions and I cannot figure out how to chain these methods.



If I try code like the following:



getObjectInfo( objectApiName: ACCOUNT_OBJECT )
.then(result =>
return getPicklistValues(recordTypeId: result.defaultRecordTypeId, fieldApiName: TYPE_FIELD);
)
.then(result =>
this.picklistValues = result.data
)
.catch(error =>
this.error = error;
);


I get an error




render threw an error in 'c:getpicklistexample' [Imperative use is not
supported. Use @wire(getObjectInfo).]




If I try something like



@track rtId;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;



@wire(getPicklistValues, recordTypeId: this.rtId,fieldApiName: TYPE_FIELD)
picklistValues;


Then it throws an internal server error. Anybody have an idea as to how I could retrieve the record type Id and then call to get the pick list values like the documentation suggests?



FYI my imports are:



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';






lightning lightning-web-components






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 hours ago









pbattissonpbattisson

2,6531619




2,6531619












  • FYI, aware I could probably do this with apex but the docs suggest that I should be able to do this otherwise.

    – pbattisson
    2 hours ago

















  • FYI, aware I could probably do this with apex but the docs suggest that I should be able to do this otherwise.

    – pbattisson
    2 hours ago
















FYI, aware I could probably do this with apex but the docs suggest that I should be able to do this otherwise.

– pbattisson
2 hours ago





FYI, aware I could probably do this with apex but the docs suggest that I should be able to do this otherwise.

– pbattisson
2 hours ago










1 Answer
1






active

oldest

votes


















2














You have to use dynamic binding:



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;


This is mentioned in Use the Wire Service to Get Data.



I wrote a mockup that demonstrates this. You should be able to copy-paste this code directly.




<template>
<template if:true=hasPicklistValues>
<select>
<template for:each=picklistValues.data.values for:item="entry">
<option key=entry.value value=entry.label>entry.label</option>
</template>
</select>
</template>
</template>



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';


export default class Democomponent extends LightningElement
@track rtId;
@track error;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;
else
this.error = error;



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;

get hasPicklistValues()
return this.picklistValues && this.picklistValues.data && this.picklistValues.data.values;







share|improve this answer




















  • 1





    This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

    – tsalb
    2 hours ago











  • @tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

    – sfdcfox
    1 hour ago











  • Such is the speed of implementation when using ui*API and LWC ;)

    – tsalb
    1 hour ago











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "459"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f255958%2fchain-wire-methods-together-in-lightning-web-components%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














You have to use dynamic binding:



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;


This is mentioned in Use the Wire Service to Get Data.



I wrote a mockup that demonstrates this. You should be able to copy-paste this code directly.




<template>
<template if:true=hasPicklistValues>
<select>
<template for:each=picklistValues.data.values for:item="entry">
<option key=entry.value value=entry.label>entry.label</option>
</template>
</select>
</template>
</template>



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';


export default class Democomponent extends LightningElement
@track rtId;
@track error;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;
else
this.error = error;



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;

get hasPicklistValues()
return this.picklistValues && this.picklistValues.data && this.picklistValues.data.values;







share|improve this answer




















  • 1





    This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

    – tsalb
    2 hours ago











  • @tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

    – sfdcfox
    1 hour ago











  • Such is the speed of implementation when using ui*API and LWC ;)

    – tsalb
    1 hour ago















2














You have to use dynamic binding:



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;


This is mentioned in Use the Wire Service to Get Data.



I wrote a mockup that demonstrates this. You should be able to copy-paste this code directly.




<template>
<template if:true=hasPicklistValues>
<select>
<template for:each=picklistValues.data.values for:item="entry">
<option key=entry.value value=entry.label>entry.label</option>
</template>
</select>
</template>
</template>



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';


export default class Democomponent extends LightningElement
@track rtId;
@track error;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;
else
this.error = error;



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;

get hasPicklistValues()
return this.picklistValues && this.picklistValues.data && this.picklistValues.data.values;







share|improve this answer




















  • 1





    This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

    – tsalb
    2 hours ago











  • @tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

    – sfdcfox
    1 hour ago











  • Such is the speed of implementation when using ui*API and LWC ;)

    – tsalb
    1 hour ago













2












2








2







You have to use dynamic binding:



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;


This is mentioned in Use the Wire Service to Get Data.



I wrote a mockup that demonstrates this. You should be able to copy-paste this code directly.




<template>
<template if:true=hasPicklistValues>
<select>
<template for:each=picklistValues.data.values for:item="entry">
<option key=entry.value value=entry.label>entry.label</option>
</template>
</select>
</template>
</template>



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';


export default class Democomponent extends LightningElement
@track rtId;
@track error;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;
else
this.error = error;



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;

get hasPicklistValues()
return this.picklistValues && this.picklistValues.data && this.picklistValues.data.values;







share|improve this answer















You have to use dynamic binding:



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;


This is mentioned in Use the Wire Service to Get Data.



I wrote a mockup that demonstrates this. You should be able to copy-paste this code directly.




<template>
<template if:true=hasPicklistValues>
<select>
<template for:each=picklistValues.data.values for:item="entry">
<option key=entry.value value=entry.label>entry.label</option>
</template>
</select>
</template>
</template>



import LightningElement, wire, track from 'lwc';
import getPicklistValues, getObjectInfo from 'lightning/uiObjectInfoApi';
import TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';


export default class Democomponent extends LightningElement
@track rtId;
@track error;

@wire(getObjectInfo, objectApiName: ACCOUNT_OBJECT )
handleResult(error, data)
if(data)
this.rtId = data.defaultRecordTypeId;
else
this.error = error;



@wire(getPicklistValues, recordTypeId: "$rtId", fieldApiName: TYPE_FIELD)
picklistValues;

get hasPicklistValues()
return this.picklistValues && this.picklistValues.data && this.picklistValues.data.values;








share|improve this answer














share|improve this answer



share|improve this answer








edited 1 hour ago

























answered 2 hours ago









sfdcfoxsfdcfox

262k12209454




262k12209454







  • 1





    This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

    – tsalb
    2 hours ago











  • @tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

    – sfdcfox
    1 hour ago











  • Such is the speed of implementation when using ui*API and LWC ;)

    – tsalb
    1 hour ago












  • 1





    This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

    – tsalb
    2 hours ago











  • @tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

    – sfdcfox
    1 hour ago











  • Such is the speed of implementation when using ui*API and LWC ;)

    – tsalb
    1 hour ago







1




1





This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

– tsalb
2 hours ago





This is also how I would approach this (been writing LWC since it ga-ed). One trick for @wire is that it's reactive off value change and null to value is a perfectly valid reaction. My suspicion is that under the hood, it's a hash check on the property value.

– tsalb
2 hours ago













@tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

– sfdcfox
1 hour ago





@tsalb Thanks for confirming. I ended up writing up a mock for this anyways, it wasn't terribly bad.

– sfdcfox
1 hour ago













Such is the speed of implementation when using ui*API and LWC ;)

– tsalb
1 hour ago





Such is the speed of implementation when using ui*API and LWC ;)

– tsalb
1 hour ago

















draft saved

draft discarded
















































Thanks for contributing an answer to Salesforce Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f255958%2fchain-wire-methods-together-in-lightning-web-components%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Era Viking Índice Início da Era Viquingue | Cotidiano | Sociedade | Língua | Religião | A arte | As primeiras cidades | As viagens dos viquingues | Viquingues do Oeste e Leste | Fim da Era Viquingue | Fontes históricas | Referências Bibliografia | Ligações externas | Menu de navegação«Sverige då!»«Handel I vikingetid»«O que é Nórdico Antigo»Mito, magia e religião na volsunga saga Um olhar sobre a trajetória mítica do herói sigurd«Bonden var den verklige vikingen»«Vikingatiden»«Vikingatiden»«Vinland»«Guerreiras de Óðinn: As Valkyrjor na Mitologia Viking»1519-9053«Esculpindo símbolos e seres: A arte viking em pedras rúnicas»1679-9313Historia - Tema: VikingarnaAventura e Magia no Mundo das Sagas IslandesasEra Vikinge

What's the metal clinking sound at the end of credits in Avengers: Endgame?What makes Thanos so strong in Avengers: Endgame?Who is the character that appears at the end of Endgame?What happens to Mjolnir (Thor's hammer) at the end of Endgame?The People's Ages in Avengers: EndgameWhat did Nebula do in Avengers: Endgame?Messing with time in the Avengers: Endgame climaxAvengers: Endgame timelineWhat are the time-travel rules in Avengers Endgame?Why use this song in Avengers: Endgame Opening Logo Sequence?Peggy's age in Avengers Endgame

Are there legal definitions of ethnicities/races? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Legal definitions in the United StatesAre there truly legal limits on US interest rates?Are gender identity and sexual orientation federally protected?Why is there an apparent legal bias against digital services?What limits are there to the powers of individual judges in the United States legal system?Are women only scholarships legal under Irish / EU law?Is the term “race” defined by Public Law enacted by Congress of the United StatesIs there a legal definition of race in the US?Neighbors are spying for landlord on Renters is it legal?Are Protected Classes Bi-directional?