setValue(value, flags = {}) {
    const changed = this.updateValue(value, flags);
    value = this.dataValue;
    if (!this.hasInput) {
      return changed;
    }
    const isArray = Array.isArray(value);
    const valueInput = this.refs.fileLink || this.refs.input;
    const isFilelink = !!this.refs.fileLink
    if (
      isArray &&
      Array.isArray(this.defaultValue) &&
      this.refs.hasOwnProperty('input') &&
      valueInput &&
      (valueInput.length !== value.length) &&
      this.visible
    ) {
      if (isFilelink || valueInput.length) {
        this.redraw();
      }
    }
    if (this.isHtmlRenderMode() && flags && flags.fromSubmission && changed) {
      this.redraw();
      return changed;
    }
    for (const i in this.refs.input) {
      if (this.refs.input.hasOwnProperty(i)) {
        this.setValueAt(i, isArray && !this.isSingleInputValue() ? value[i] : value, flags);
      }
    }
    return changed;
  }
Set the value of this component.
@param {*} value - The value to set for this component.
@param {*} flags - The flags to use when setting the value.
@returns {boolean} - If the value changed.