Возникли проблемы с использованием флажков fluent ui с логическими или строковыми столбцами SharePoint

#reactjs #typescript #sharepoint-online #spfx

#reactjs #typescript #sharepoint-online #spfx

Вопрос:

У меня есть флажки на моей SPFX (SharePoint framework, ReactJS / TypeScript), созданной в форме веб-части. Каждый раз, когда запускается веб-часть, все флажки отмечены (отмечены), я хочу, чтобы они НЕ были отмечены. Я пробовал как строковые, так и логические столбцы в SharePoint для сохранения изменений. Они будут правильно отправлены в список (если я изменю их на отмеченные / не отмеченные), но они всегда запускаются как отмеченные!

Вот инициализация состояния:

  FocusGroups: false,
    
 

Вот JSX:

 <Checkbox label="Focus Groups" checked={this.state.FocusGroups} onChange={this._onFocusGroupsToChange} />

 

Вот функция:

 private _onFocusGroupsToChange = (ev: React.FormEvent<HTMLElement>, isChecked: boolean) => {
 
        this.setState({
        FocusGroups: isChecked,
 
       }, () => {console.log(this.state.FocusGroups, 'state.FocusGroups');});
 
     }

 

Я могу дать ему обходной путь, преобразовав IsChecked в функции в строку, но это кажется ненужным.
Что я здесь делаю не так?

Ответ №1:

Попробуйте использовать свойство defaultChecked: введите описание изображения здесь

  <Checkbox label="Focus Groups"  onChange={this._onFocusGroupsToChange} defaultChecked={false}/>
 

Если флажок по-прежнему установлен по умолчанию, попробуйте очистить кэш браузера.

Комментарии:

1. Привет, Амос, я думал, что это сработало, но это не так. Если я опущу checked, это не позволит мне отправить в список SharePoint.

2. Это может быть не связано, но столбцы SharePoint, в которые отправляются флажки, являются полями «Да» / «Нет», и они ВСЕГДА отправляются как «Да», несмотря на то, что флажки пустые.

Ответ №2:

Я обнаружил проблему. Значение по умолчанию для столбца Yes / No в SharePoint равно Yes. Вот почему он отображался как отмеченный. Установка значения No решила проблему. О, ужасы кодирования для SharePoint.