#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.