«метка» будет отображаться в первой строке, если ваше свойство «значение» является действительным - убедитесь, что ваше состояние selectedOption имеет действительное значение, которое существует в вашем значении параметров - все в соответствии с документами .
ваш код должен выглядеть примерно так:
import React from 'react';
import Select from 'react-select';
const options = [
{ value: 'chocolate', label: 'Chocolate' },
{ value: 'strawberry', label: 'Strawberry' },
{ value: 'vanilla', label: 'Vanilla' }
];
class App extends React.Component {
state = {
selectedOption: null,
}
handleChange = (selectedOption) => {
this.setState({ selectedOption });
console.log(`Option selected:`, selectedOption);
}
render() {
const { selectedOption } = this.state;
return (
);
}
}
Я думаю TaskManagerClosing
должна быть единственная причина, которая не запрашивает, если таковые имеются. Лично, я хотел бы быть предложенным в случае WindowsShutDown
. Если я закрываю Windows с несохраненным документом где-нибудь, это означает, что я забыл об этом.
Я определенно также показал бы, "Делают Вы хотите сохранить" диалоговое окно на WindowsShutDown (приложение могло бы, например, быть в фоновом режиме в течение некоторого времени, и пользователь забыл об этом, или он, возможно, нажал на "Restart" после того, как пакет обновления был установлен, не думая дважды и т.д.).
Что касается TaskManagerClosing, я не показал бы диалоговое окно в этом случае.
Я лично предпочитаю просто закрывать программу, когда пользователь выбирает близко, если существуют какие-либо несохраненные документы в близкое время, которое я предпочитаю сохранять резервными копиями тех файлов и сообщать пользователю, что существуют несохраненные документы, когда они затем открывают приложение.
Я делаю это по нескольким причинам, номер один, который мне нравится, когда мои приложения закрывают, когда я говорю им закрываться, и номер два путем хранения временной копии файла, который я обновляю со всеми изменениями, поскольку пользователь работает над ним, я охраняю против неожиданных катастрофических отказов и завершений моих приложений.
Таким образом с этой техникой Вы не должны волноваться об ой приложении, был закрыт.
Действительно CloseReason является спорным вопросом, не так ли? То, что Ваша форма уходит, - то, что Вы пытаетесь поймать.
Теперь необходимо знать, обработало ли приложение уже событие "сохранения". Если так, форма может уйти. Вы сохранили свой документ. Но в противном случае можно хотеть предложить пользователю.
Если можно проверить данные быстро (т.е. сделать строка выдерживает сравнение, или хеш выдерживают сравнение на документе по сравнению с данными в файле), затем, Вы будете знать, сохранил ли пользователь данные формы.
Иначе, если существует много полей, и проверяющий, что каждый является препятствующим ресурсу, то помещенный флаг "isDirty" на Вашу форму. Позвольте Сохранению (), метод установил isDirty на ложь и любые полевые массивы изменений оно к истинному.
Затем в formClosing все, в чем Вы нуждаетесь:
protected override void OnFormClosing(FormClosingEventArgs e)
{
if (isDirty)
{
DialogResult R = MessageBox.Show(this, "Save changes?", "Save Changes",
MessageBoxButtons.YesNoCancel);
if (R == DialogResult.Yes)
{
this.Save();
} else if (R == DialogResult.Cancel)
{
e.Cancel = true;
}
}
}
Я думал бы даже TaskManagerClosing
мог использовать подсказку для сохранения. Если Ваше приложение отвечает обычно, закрытие его через диспетчер задач должно не отличаться от любого другого способа закрыть его. Если это подвешивается, не имеет значения, что делает Ваш onClose обработчик - это никогда не будет добираться там.
Я соглашаюсь с @Jerry, в котором более важно постараться не запрашивать, чтобы сохранить, если данные не изменились начиная с последнего сохранения. Я обычно использую простой 'измененный' флаг, который установлен на любом действии редактирования и очистился на, сохраняет и загружается.