I'm showing a datatable with a list of opportunities. Now I want to allow for a dropdown menu of actions. When I click on the arrow to the left of the opportunity detail row, it is giving me this error in the browser.

[a.reduce is not a function] c()@https://data-velocity-3907.lightning.force.com/components/lightning-datatable-utils.js:2:310
n.get computedMenuAlignment as computedMenuAlignment@https://data-velocity-3907.lightning.force.com/components/lightning-primitive-cell-actions.js:2:1844

This is my lightning:datatable:

<div style="position: relative; height: 30vh">
   data="{! v.data}"
   columns="{! v.columns }"
   onrowaction="{! c.handleRowAction }"/>

Here's my handleRowAction function:

 handleRowAction: function (component, event, helper) {
    const action = event.getParam('action')
    const row = event.getParam('row')
    switch (action.name) {
        case 'show_details':
            // let navEvt = $A.get('e.force:navigateToSObject')
            // navEvt.setParams({
            //     'recordId': row.Id,
            //     'slideDevName': 'detail'
            // })
            // navEvt.fire()
            alert('Showing Details: ' + JSON.stringify(row));

Here's the v.columns situation:

component.set('v.columns', [
      {label: 'Opportunity name', fieldName: 'Name', type: 'text'},
      // {label: 'Account name', fieldName: 'accountName', type: 'text' },
      {label: 'Close date', fieldName: 'CloseDate', type: 'date' },
      {label: 'Amount', fieldName: 'Amount', type: 'currency' },
      //{label: 'ID', fieldName: 'ID', type: 'ID'},
      {type: 'action', typeAttributes: { rowActions: { label: 'Show Details', name: 'show_details' } } } 

Again the error occurs just as I try to click the action menu arrow on the opportunity detail row on the table.

1 Answer 1


While setting v.columns, the action attribute takes in an 'array' of rowActions. So this should help:

{type: 'action', typeAttributes: { rowActions: [{ label: 'Show Details', name: 'show_details' }] } }
  • Thank you very much. This is the solution to the problem.
    – supernova
    Commented Jul 27, 2018 at 2:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .