setStore(id, value2, autoload = false) {
    let autoVars = {};
    if (autoload === true) {
      try {
        autoVars = this.getStore("_uibAutoloadVars") || {};
      } catch (e) {
      }
    }
    if (typeof value2 === "object") {
      try {
        value2 = JSON.stringify(value2);
      } catch (e) {
        log("error", "Uib:setStore", "Cannot stringify object, not storing. ", e)();
        return false;
      }
    }
    try {
      localStorage.setItem(this.storePrefix + id, value2);
      if (autoload) {
        autoVars[id] = id;
        try {
          localStorage.setItem(this.storePrefix + "_uibAutoloadVars", JSON.stringify(autoVars));
        } catch (e) {
          log("error", "Uib:setStore", "Cannot save autoload list. ", e)();
        }
      }
      this._dispatchCustomEvent("uibuilder:propertyStored", { prop: id, value: value2, autoload });
      return true;
    } catch (e) {
      log("error", "Uib:setStore", "Cannot write to localStorage. ", e)();
      return false;
    }
  }
Write to localStorage if possible. console error output if can't write
Also uses this.storePrefix
@example
  uibuilder.setStore('fred', 42)
  console.log(uibuilder.getStore('fred'))
@param {string} id localStorage var name to be used (prefixed with 'uib_')
@param {*} value value to write to localstore
@param {boolean} [autoload] If true, on load, uib will try to restore the value from the store
@returns {boolean} True if succeeded else false