1

I'm currently using ag-grid to render data and it works fine untill I try to edit cells using my custom cellEditorFramework component:


export default defineComponent({
    name: 'LinesViewVersionEditor',
    props: ['params'],

    setup(props, { expose }) {
        const value = ref(props.params.value)
        const versionOptions = ref([])
        const changedValue = ref(false)
        const client = new Client({ baseURL: settings.ClientBaseUrl })

        const getValue = function () {
            console.log('getValue')
            return value.value
        }

        const updateValue = function (value: { version: number; entitySlug: string; entityVersionPk: number }) {
            props.params.api.stopEditing()
            changedValue.value = true
        }

        versionOptions.value = [
            {
                value: value.value,
                label: value.value?.version.toString()
            }
        ]

        ...some code here

        expose({
            value,
            getValue
        })

        return () => (
            <Select
                showArrow={false}
                class={'ant-select-custom'}
                value={value.value?.version}
                options={versionOptions.value}
                onChange={ value => { updateValue(value) } }
                onClick={ async () => {
                    versionOptions.value = await getChildVersions(
                        client,
                        ...args
                    )
                }}
            />
        )
    }
})

As you can see I'm returning some TSX, so I'm forced to use Vue3 { expose } to return method to the parent component with agGrid table. And it has no access to exposed method & value. I tried to make different method in "methods" property of class component options and it worked as supposed. In ag-grid docs written that I can simply return getValue in setup() function but it doesn't work for me for no visible reason. Thank you in advance for help.

  • Found out that problem is in the exposed functions, ag-grid properly works with functions directly returned from setup() function and haven't access to functions returned via exposed context properties – Alexander Nikolaev Oct 13 '21 at 19:28

0 Answers0