Show Knowledge article (not Community related)

面白い質問があったので、ちょっと回答してみました。

ナレッジとタブセットを使った画面です。
あんまりこんな使い方は考えたことがなかったです。


[Show Knowledge article (not Community related)](https://trailblazers.salesforce.com/answers?id=9064S000000kH3t)

ボタンのコンポーネントこれから、目的のコンポーネントをキックするようです。
ポイントは親コンポーネントから子コンポーネントを呼び出すところですね。
親から子なんでイベントは使っていません。


Menu 1 button

```
<aura:component implements="flexipage:availableForAllPageTypes,force:appHostable" access="global">
    <aura:attribute name="setMeOnInit" type="String" default="default value" />

    <lightning:button variant="brand-outline" label="Menu1" title="Menu 1 action" onclick="{! c.handleClick }"/>
    <p>This value is set in the controller after the component initializes and before rendering.</p>
    <p><b>{!v.setMeOnInit}</b></p>
    
    <c:MyArticleviewer aura:id="MyArticleviewer"  />
        
</aura:component>
```

```
({
	handleClick : function(component, event, helper) {
        
        var childCmp = component.find("MyArticleviewer");
        childCmp.onInit2(); 
	}
})
```


MyArticleviewer

```
<aura:component implements="flexipage:availableForAllPageTypes" access="global" controller="SampleAuraController">
    <aura:handler name = "init" value = "{!this}" action = "{!c.onInit}"/>
    <aura:attribute type="Knowledge__kav[]" name="articleList"/>
    <aura:attribute name="isOpen" type="Boolean" default="false"/>
    
    <aura:method name="onInit2">  
    </aura:method>
    
    <aura:if isTrue="{!v.isOpen}">
        <lightning:card>
            <lightning:tabset>
                <aura:iteration items="{!v.articleList}" var="item">
                    <lightning:tab label="{!item.Title}" id="{!item.Id}">
                        <lightning:recordForm
                                              recordId="{!item.Id}"
                                              objectApiName="Knowledge__kav"
                                              layoutType="Compact"
                                              mode="readonly" />
                    </lightning:tab>
                </aura:iteration>
            </lightning:tabset>
        </lightning:card>
    </aura:if>
</aura:component>
```


```
({
    onInit : function( component, event, helper ) {    
    },
    
    onInit2 : function( component, event, helper ) {    
        component.set( "v.isOpen","true" ); 
        let action = component.get( "c.fetchArticles" );  
        action.setCallback(this, function(response) {  
            let state = response.getState();  
            if ( state === "SUCCESS" ) {  
                
                console.log( "Returned value is " + JSON.stringify( response.getReturnValue() ) );
                component.set( "v.articleList", response.getReturnValue() );
                
                
            }  else {
                
                let showToast = $A.get( "e.force:showToast" );
                showToast.setParams({
                    title : 'Error',
                    type : 'error',
                    mode : 'sticky',
                    message : 'Some error occured'
                });
                showToast.fire();
                
            }
        });  
        $A.enqueueAction( action );         
        
    },
})
```

#　その他

[コミュニティで知識を共有する](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000DfHxi)


[Knowledge Articles Not Displaying Within Customer Portal](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A8qnGSAR)
顧客プロファイルに移動し、「カテゴリグループの可視性設定」ですべてのカテゴリグループに表示する必要があります