Значение всегда должно быть сохранено Formik - поэтому, если изменение произойдет, вы должны вызвать Formiks handleChange
в вашей функции changeValue
.
handleChange
занимает React.ChangeEvent<HTMLInputElement>
, поэтому вам нужно создать поддельное событие и вызвать с ним функцию handleChange
.
const evt = {target: {name: this.props.name, value: this.props.value + 1}}
this.props.handleChange(evt);
Вы не можете просто переместить его в конструкторе. Вам нужно будет создать новый столбец, удалить старый, сгенерировать сценарий и отредактировать сценарий, в котором он будет вставлен во временную таблицу из старой таблицы, в результате чего значение старого столбца (в элементе select) войдет в новый столбец.
Я согласен с Паксом. Если по определенной причине вам необходимо вернуть поля в определенном порядке в запросе, просто измените запрос, поместив поле в нужное вам место.
Если по какой-либо причине вам нужно в стоит все, чтобы переместить это поле, вы можете сделать это с помощью скрипта, подобного следующему, который делает FIELD3 первым столбцом в таблице с именем TestTable :
/* Original sample table with three fields */
CREATE TABLE [dbo].[TestTable](
[FIELD1] [nchar](10) NULL,
[FIELD2] [nchar](10) NULL,
[FIELD3] [nchar](10) NULL
) ON [PRIMARY]
/* The following script will make FIELD3 the first column */
CREATE TABLE dbo.Tmp_TestTable
(
FIELD3 nchar(10) NULL,
FIELD1 nchar(10) NULL,
FIELD2 nchar(10) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
EXEC('INSERT INTO dbo.Tmp_TestTable (FIELD3, FIELD1, FIELD2)
SELECT FIELD3, FIELD1, FIELD2 FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT'
GO
Однако, Я настаиваю на том, что, возможно, ваша проблема может быть решена с помощью другого подхода, который не