Ошибка реагирования: & ldquo; Невозможно обновить во время существующего перехода состояния & rdquo;

Попробуйте эту функцию: несколько запросов и вставка нескольких значений.

function employmentStatus($Status) {
$pdo = PDO2::getInstance();

$sql_parts = array(); 
for($i=0; $i<count($Status); $i++){
    $sql_parts[] = "(:userID, :val$i)";
}

$requete = $pdo->dbh->prepare("DELETE FROM employment_status WHERE userid = :userID; INSERT INTO employment_status (userid, status) VALUES ".implode(",", $sql_parts));
$requete->bindParam(":userID", $_SESSION['userID'],PDO::PARAM_INT);
for($i=0; $i<count($Status); $i++){
    $requete->bindParam(":val$i", $Status[$i],PDO::PARAM_STR);
}
if ($requete->execute()) {
    return true;
}
return $requete->errorInfo();
}
0
задан Jimmy 16 January 2019 в 17:18
поделиться

1 ответ

Проблема именно в том, что говорится в сообщении об ошибке: вы запускаете форму обновления состояния React непосредственно внутри метода render():

const Toasts = ({ appointments, resetState, toastedAppointment, toasts }) => {
  if (toasts.type) {
    switch (toasts.type) {
      case "dataFetched":
        resetState(); // Dispatching this action creates the warning.

В этом случае он отправляет действие Redux, но в конечном итоге это приводит к вызову React setState().

Не делайте этого :) Логика побочных эффектов, такая как запуск какого-то дополнительного обновления, основанного на текущем состоянии, вероятно, должна происходить примерно так componentDidUpdate. Компонент Toasts, вероятно, необходимо будет соответственно преобразовать из компонента функции в компонент класса.

0
ответ дан markerikson 16 January 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: