在 kintone 的外掛儲存介面中,我們可以用 kintone.plugin.app.setConfig
來儲存設定,儲存的設定只能是 { key: string } 的形式,如果要存非字串的格式進去,就會報錯,例如:
{
"key": [1, 2, 3],
"key2": [
{ name: 1 },
{ name: 2 }
]
}
這就麻煩了,所以會看到有些人會另開一個應用程式,專門放設定檔案用。
官網 上也寫明白,就是只能存字串,所以我們可以把 value 轉字串,使用 JSON.stringify(),要取出的時候再把它 JSON.parse()。
這樣就能解決大部分的問題,不過偶爾會出現變數。例如在紀錄中,從編輯畫面(edit.show)跳到 讀取畫面(detail.show)的時候,拿到的會是已經 parse
過後的值,需要特別注意。
如果上面的方式讓你覺得麻煩,可以用非官方的套件 kintone-use,使用 usePluginConfig
就可以自由儲存非字串的格式。
npm i kintone-use
安裝後將 usePluginConfig
的功能解構出來:
import { usePluginConfig } from 'kintone-use'
const { setPluginConfig, getPluginConfig, hasPluginConfig } = usePluginConfig()
在某些時間點調用 usePluginConfig
會拿不到資料,這是因為找不到 PLUGIN_ID
,所以可以自己帶入:
const PLUGIN_ID = kintone.$PLUGIN_ID
usePluginConfig(PLUGIN_ID)
其他功能則是:
setPluginConfig
:儲存外掛設定。getPluginConfig
:取得外掛設定。hasPluginConfig
:確認有沒有外掛設定,返回 true
或 false
。套件支援 Typescript,像 getPluginConfig
這種函式可以帶個泛型進去:
const config = getPluginConfig<ConfigType>()
setPluginConfig
在成功之後則會回傳 success: boolean
的形式。
const res = await setPluginConfig({})
console.log(res.success) // true
希望大家都能快樂的儲存自己想要的格式。