onClick
необходимо передать функцию.
Ваш первый пример передает onClick
функцию, которая вызывает this.props.onClick(this.state.id)
, когда она работает и работает должным образом.
Ваш второй пример передает onClick
результат оценки this.props.onClick(this.state.id)
, поэтому все идентификаторы печатаются сразу после загрузки компонента. Я предполагаю, что при вызове this.props.onClick(this.state.id)
ничего не возвращается, поэтому onClick
нечего вызывать, когда нажимают div
.
Триггер выглядит так, как будто он удаляет районы, id которых равен id_countries, то есть предложение where на самом деле
WHERE districts.id_countries = districts.id
. Вам нужно сослаться на идентификатор из таблицы стран. В триггере удаления используйте для этого "old".
CREATE TRIGGER [delete_country]
BEFORE DELETE
ON [countries]
FOR EACH ROW
BEGIN
DELETE FROM districts WHERE districts.id_countries = old.id;
END
Кроме того, я бы посоветовал изменить соглашение об именах вашей схемы. Обычно имя таблицы единственное число и соответствует объекту в строке. У меня была бы таблица страны с идентификатором и именем столбцов, таблица районов с идентификатором, country_id и именем и т. Д.
country
-------
id
name
district
-------
id
country_id
name
municipality
------------
id
district_id
name
parish
-----
id
municipality_id
name
Тогда триггер будет
CREATE TRIGGER [delete_country]
BEFORE DELETE
ON [country]
FOR EACH ROW
BEGIN
DELETE FROM district WHERE district.country_id = old.id;
END
PRAGMA foreign_keys = 1;
Это включит осуществление внешних ключей точно так же, как в MySQL. Если Вы определяете свою таблицу с 'НА, УДАЛЯЮТ КАСКАДНЫЙ' пункт как так:
CREATE TABLE "notification" (
"rowid" INTEGER NOT NULL,
"user" INTEGER NOT NULL,
"task" TEXT NOT NULL,
"payload" TEXT NOT NULL,
PRIMARY KEY("rowid"),
FOREIGN KEY("user") REFERENCES "user" ON UPDATE CASCADE ON DELETE CASCADE
);
целая строка будет удалена, когда (в этом случае) это будет родительская пользовательская строка, удален.
P.S.: Я знаю, что это - мертвый поток, но я полагал, что поместил это здесь для людей, просматривающих в 2019.; D