Réagissez à la case à cocher et sélectionnez onChange

Chris Hurst

J'ai lu beaucoup de questions sur ce sujet et parcouru la documentation de React également, mais je ne suis toujours pas plus sage. Je ne peux pas obtenir un champ de saisie pour émettre quoi que ce soit (un événement) lors d'un clic ou d'un changement.

Mon code est ci-dessous et à part l'utilisation de materialzecss, j'utilise du HTML / JSX de base et aucun autre javascript.

Je ne peux tout simplement pas mettre à jour l'entrée pour basculer entre coché / non coché sur onChange ou onClick. Quelqu'un peut-il me dire où je vais mal ici?

import React, { Component } from 'react'
import Alert from '../components/shared/Alert'
import { Redirect } from 'react-router-dom'
import axios from 'axios'

class Create extends Component {
  constructor(){
    super()
    this.state = {
      redirect:false,
      alert:{
        show: false
      },
      checked:true
    }
  }

  handleChange(event) {
    this.setState({
      recipe : {[event.target.name]: event.target.value}
    })
    console.log(this.state);

  }

  handleSubmit(event) {

  }


  render() {
    const { redirect } = this.state;
    const showAlert = this.state.alert.show;
     if (redirect) {
       return <Redirect to='/'/>;
     } else if (showAlert) {
        console.log("alert");
     }
    return (
      <div className="row">
        {showAlert ? <Alert /> : ''}
        <div className="container">
          <div className="row">
              <div className="col s10 offset-s1  z-depth-1" id="loginForm">
              <h5 className="red darken-4" id="title">Create New Recipe</h5>
              <form >
                <div className="input-field" id="username" >
                  <input type="text" className="validate" name="name"
                  onChange={this.handleChange.bind(this)} />
                  <label htmlFor="name">Name</label>
                </div>
                <div className="input-field" id="password">
                  <input type="text" className="validate" name="intro" 
                  onChange={this.handleChange.bind(this)} />
                  <label htmlFor="password">Intro</label>
                </div>
                <div className="input-field" id="password">
                  <textarea id="textarea1" className="materialize-textarea" name="body" 
                  onChange={this.handleChange.bind(this)}>
                  </textarea>
                  <label htmlFor="textarea1">Recipe</label>
                </div>
                <div className="row">
                  <div className="input-field col s12 m5" id="password">
                    <Serves function={this.handleChange.bind(this)}/>
                    <label>Serves</label>
                  </div>
                  <div className="input-field col s12 m5" id="test">
                    <select name="cuisine" defaultValue="2" onChange={(e)=>{console.log(e)}}>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                    </select>
                    <label>Cuisine</label>
                  </div>
                </div>
                <div className="input-field" id="password">
                  <input type="checkbox" className="filled-in" id="filled-in-box"/>
                  <label htmlFor="filled-in-box">Public?</label>
                </div>
              <button type="submit" className="waves-effect waves-light btn red darken-4" id="loginbtn">Login</button>
              <a href="/app/dashboard" className="waves-effect waves-light btn amber darken-1" id="loginbtn">Back</a>
            </form>
            </div>
          </div>
        </div>
      </div>
    )
  }
}

export default Create;

const Serves = (props) => {
  return(
    <select onChange={props.function} name="serves" >
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="9">10</option>
    </select>
  )
}
Andrew Heekin

Vous devez ajouter l' checkedattribut au champ de saisie et le définir comme égal à la propriété d'état que vous modifiez

ajoutez cette méthode:

handleCheckClick = () => {
  this.setState({ checked: !this.state.checked });
}

et changez la case jsx:

<input type="checkbox" checked={this.state.checked} onChange={this.handleCheckClick} className="filled-in" id="filled-in-box"/>

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

sélectionnez une seule case à cocher du groupe de cases à cocher et rendez-la obligatoire

Sélectionnez/Désélectionnez et obtenez les valeurs de la case à cocher générée dynamiquement à l'aide de la directive ngModel dans Angular

Sélectionnez - Désélectionnez la case à cocher - getElementById

sélectionnez et désélectionnez ne fonctionne pas pour la case à cocher créée dynamiquement dans js

La case à cocher ne répond pas à onChange - React

Case à cocher Réagir - Case à cocher Onchange, non définie pour la première fois

Case à cocher de la liste déroulante Bootstrap sélectionnez

Accès aux attributs d'une case à cocher Sélectionnez la case à cocher Multiples

sélectionner la ligne correcte et cocher la case

sélectionnez la case à cocher une colonne particulière doit apparaître et d'autres doivent disparaître

Sélectionnez les données de plusieurs tables dans MySQL en utilisant des cases à cocher et affichez le champ de table en fonction de la case à cocher

Sélectionnez la requête pour récupérer les données de la case à cocher dans laravel

Sélectionnez/Désélectionnez tous les éléments de la case à cocher AngularJS

Réagissez, pourquoi l'étiquette ne déclenche pas la case à cocher Changer pour?

La case à cocher d'entrée ne réagit pas à la fonction onChange

JSF-2 Sélectionnez / désélectionnez toute la liste des cases à cocher avec une seule case à cocher

Case à cocher-Sélectionnez tout basculer et donnez également des fonctionnalités individuelles à chaque case à cocher

Comment désactiver une case à cocher après avoir exécuté la méthode onChange?

Manipulation des champs insérés à partir de la case à cocher et de la sélection via Jquery - Cocoon Rails

Sélectionnez la ligne uniquement lorsque vous appuyez sur la case à cocher et non sur la ligne elle-même

La case à cocher de la table de données des matériaux angulaires conserve la valeur dans le tableau lorsque tout sélectionner ou sélectionnez un seul élément et supprimez-la si vous la désélectionnez

comment activer le bouton uniquement après avoir sélectionné la case et la case à cocher

comment mettre une valeur de liaison et un onchange dans la même case à cocher d'entrée ?

Comment utiliser la case à cocher et rechercher?

La case à cocher dynamique onchange ne fonctionne pas avec jquery?

Événement onChange avec modifications javascript de la case à cocher

Impossible de cocher et décocher la case dans reactjs

case à cocher vérifier tous les frères et sœurs de la case à cocher imbriquée dans un td

la case à cocher réagir ne s'affiche pas correctement

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive