React – Porque o uso de uma variável global para armazenar o this faz o react enxergar apenas a última referência?

Eu estou aprendendo reactjs e me deparei com uma situação que preciso de ajuda para entender, e por ser específico não consegui encontrar nenhuma referência sobre isso.

Tenho o arquivo Input.js

import React, { Component } from 'react' import Input, { InputBootstrap } from 'react-bootstrap'  export default class Input extends Component {     render() {         return (             <div>                 <label htmlFor={this.props.id}>                     <span>{this.props.label}: </span>                     <InputBootstrap id={this.props.id} type={this.props.type} name={this.props.name} value={this.props.value} onChange={this.props.onChange} alt={this.props.alt} placeholder={this.props.placeholder} />                 </label>             </div>         );     } }

Com o intuito de criar um input genérico para o meu SPA.

E o arquivo Cadastro.js

export default class Cadastro extends Component {     constructor() {         super();         self = this;          ...     }      render() {         return (             <div>                 <Input id='nome' type='text' name='nome' label='Nome' value={self.state.nome} onChange={self.setNome} placeholder='Seu nome' alt='Nome do Cliente' />                 <Input id='telefone' type='text' name='telefone' label='Telefone' value={self.state.telefone} onChange={self.setTelefone} placeholder='(11) 1111-1111' alt='Telefone do Cliente' />                 <Input id='dataDeNascimento' type='date' name='dataDeNascimento' label='Data de Nascimento' value={self.state.dataDeNascimento} onChange={self.setDataDeNascimento} placeholder='DD/MM/AAAA' alt='Data de nascimento do Cliente' />                 <Input id='cpf' type='number' name='cpf' label='CPF' value={self.state.cpf} onChange={self.setCPF} placeholder='123.456.789-10' alt='CPF do Cliente'/>                 <Input id='email' type='email' name='email' label='E-mail' value={self.state.email} onChange={self.setEmail} placeholder='seuemail@email.com' alt='Email do Cliente' />                 ...

Mas tenho usado um padrão para não precisar ficar inserindo .bind(this) ao final de cada método que crio, usando o self = this;

Seguindo esse padrão ficaria assim o arquivo Input.js

import React, { Component } from 'react'  var self;  export default class Input extends Component { constructor() {     super();     self = this; }  render() {     return (         <div>             <label htmlFor={self.props.id}>                 <span>{self.props.label}: </span>                 <input id={self.props.id} type={self.props.type} name={self.props.name} value={self.props.value} onChange={self.props.onChange} alt={self.props.alt} placeholder={self.props.placeholder} />             </label>         </div>     ); } }

Usando dessa forma o resultado que tenho na tela não é o esperado, logo que insiro o primeiro caractere em qualquer input da tela fica conforme na imagem.

Print da tela

Não entendo o motivo de alterar todos os campos para o útltimo da lista que criei no arquivo Cadastro.js

Conseguem me ajudar, por favor?

Problemas em C , armazenar varios valores diferentes e fazer a media aritimetica

tenho uma duvida , tenho um trabalho de programação para fazer , porém o problema é um tanto complexo.

Um programa que receba o salário e o número de dependentes dos funcionários, determine o valor de IR individual e: • A média dos salários; • A média de número de dependentes; • A média dos valores de IR calculados; • O número de funcionários por faixa de IR.

A minha dúvida é :como faço pra armazenar e calcular a media dos salários , dos dependentes , dos valores de ir e o numero de funcionários por faixa.

Por enquanto só consegui calcular o valor de ir , porém não faço ideia de como atender os requisitos acima.

Segue o meu código :

include

include

include

include

int main(){ float salario,inss,bcalculo,aliquota,deducao,ir; int dependentes; scanf(“%f”,&salario);

if(salario<=1751.81) {     inss=salario*0.08;     printf("%.2f\n",inss); } else if(salario>=1751.82 && salario<=2919.72) {     inss=salario*0.09;     printf("%.2f\n",inss); } else if(salario>=2919.73 && salario<=5839.45) {     inss=salario*0.11;     printf("%.2f\n",inss); } else{     inss=642.34;     printf("%.2f\n",inss); } scanf("%d",&dependentes); bcalculo=salario-inss-(dependentes*189.59); printf("%.2f\n",bcalculo); if(bcalculo<=1903.98) {     aliquota=1;     deducao=0;     ir=bcalculo*aliquota-deducao;     printf("%.1f\n%.2f\n%.2f", aliquota,deducao,ir); } else if(bcalculo>=1903.99 && bcalculo<=2826.65) {     aliquota=0.75;     deducao=142.80;     ir=bcalculo*aliquota-deducao;     printf("%.1f\n%.2f\n%.2f", aliquota,deducao,ir); } else if(bcalculo>=2826.66 && bcalculo<=3751.05) {     aliquota=0.15;     deducao=354.80;     ir=bcalculo*aliquota-deducao;     printf("%.1f\n%.2f\n%.2f", aliquota,deducao,ir); } else if(bcalculo>=3751.06 && bcalculo<=4664.68) {     aliquota=0.225;     deducao=636.13;     ir=bcalculo*aliquota-deducao;     printf("%.1f\n%.2f\n%.2f", aliquota,deducao,ir); } else{     aliquota=0.275;     deducao=869.36;     ir=bcalculo*aliquota-deducao;     printf("%.1f\n%.2f\n%.2f", aliquota,deducao,ir); }    return 0; 

}

Será que alguém poderia me ajudar , por favor

Como armazenar no BD uma informação do Tipo radio e select name?

Processo Seletivo

<h1 class="page-header">teste</h1>  <form action="informacoes.php" method="POST" role="form">      <b><h3> Gosta de jogar video Game?<h3/></b>      <label>              <input type="radio" value="Sim" name="gosto">Sim      </label>       <label>              <input type="radio" value="Não" name="gosto" checked="checked">Não      </label><br><br>     <b> <h3> Voce é ....?</h3><b> </b>     <select name="opcoes">             <option value="Linda">Linda</option>             <option value="Bonita">Bonita</option>             <option value="feia">Musa</option>             <option value="horrivel">Magnifica</option>     </select>     <button type="submit">enviar</button>  </form> 

prepare(“INSERT INTO resultado(gosto,opcoes) VALUES (:GOSTO,:OPCOES) “); $ game=$ _POST[‘gosto’]; $ beleza=$ _POST[‘opcoes’]; $ stmt->bindParam(“:GOSTO”,$ game); $ stmt->bindParam(“:OPCOES”,$ beleza); $ stmt->execute(); echo”terminado”; ?>

Como armazenar o valor de um input type number em uma variável JS

Não consigo armazenar o value do input na minha variável. Como devo proceder? Meu código abaixo:

<input type="number" id="numero"> <input type="button" class="adicionar" value="Comprar" onclick="add()" />  <script>     function add(){         var quantidade = parseInt(document.getElementById('numero').value);          console.log("Value: "+quantidade); </script> 

Quero alterar o value do input e a minha variável alterar também quando eu clicar no botão.

Armazenar todos os registros de uma tabela em uma variável (PHP)

Preciso fazer uma consulta no meu banco de dados MySQL e armazenar todas as linhas que forem retornadas dentro da variável $ dadosBrutos. O intuito é que cada linha seja separada pelo caractere “§”, por exemplo: nomeCliente1,telefoneCliente1§nomeCliente2,telefoneCliente2§nomeCliente3,telefoneCliente3 e assim por diante.

Os dados serão obtidos com o comando SELECT * FROM tbClientes, mas não faço ideia de como separar uma linha da outra e armazenar elas dentro da variável $ dadosBrutos.

Tentei fazer este código com Do...While, mas não faço ideia de como continuar.

Por enquanto possuo o seguinte código:

if($  qtdeClientesCadastrados > 0) {       $  contador = 0;      do {      } while ($  contador < $  qtdeClientesCadastrados); } else {      echo "zero_clientes_cadastrados"; } 

Observações:

  • A variável $ qtdeClientesCadastrados já foi declarada no trecho acima do código postado e armazena a quantidade de clientes que estão cadastrados na tbClientes do banco de dados;

  • Todo o sistema de conexão com o banco de dados já está criado e funcionando corretamente;

  • Se houver algum método melhor para fazer o código sem ser com o Do...While, também serve, desde que no final seja possível dar o comando echo $ dadosBrutos;.

Como armazenar uma arraylist em outra classe?

Tenho um trabalho de algoritmo genético em que um agente tem que andar num ambiente e toda vez que sair, ganha pontuação negativa. Os caminhos que esse agente percorre são gerados aleatoriamente, então fiz uma arraylist que guarda esses diversos arrays, já que o programa será reiniciado várias vezes.

Agora preciso de uma arraylist que guarde fora da classe principal os arrays/caminhos que não saíram do ambiente pra, a partir daí, classificar e reproduzir os melhores.

aqui está o codigo de dois agentes:

     Random posicoes = new Random();  // tamanho do vetor com as posições do agente      int aux = posicoes.nextInt(10)+4;          String [] agente_3= new String[aux];       String [] agente_4= new String[aux];         String [] direcoes ={"N","L","S","O"};        System.out.print("AGENTE_03: ");       for (int i = 0; i < agente_3.length; i++) {                       int indiceDirecao =  posicoes.nextInt(direcoes.length);         String dir = direcoes[indiceDirecao];          agente_3[i] = dir;                    System.out.printf("[%s]",agente_3[i]);     }                 System.out.println("");   //***********************************************************     System.out.print("AGENTE_04: ");     for (int i = 0; i < agente_4.length; i++) {                       int indiceDirecao =  posicoes.nextInt(direcoes.length);         String dir = direcoes[indiceDirecao];          agente_4[i] = dir;                    System.out.printf("[%s]", agente_4[i]);     }                 System.out.println("\n");        int Linha3 = 0;    int Coluna3 = 0;     int Linha4 = 0;    int Coluna4 = 0;   //*********************************AGENTE 3 ***********************************************                              if(agente_3[i] == "N"){    // N                        Linha3 =  Linha3 - 1;                        Coluna3 = Coluna3;                      }else if(agente_3[i] == "S"){  // S                            Linha3 = Linha3 + 1;                             Coluna3 = Coluna3;                     }else if(agente_3[i] == "L"){  // L                                             Coluna3 = Coluna3 + 1;                                Linha3 = Linha3;                    }else if(agente_3[i] == "O"){   // O                                          Coluna3 = Coluna3 - 1;                             Linha3 = Linha3;                                           }                        //*********************************AGENTE 4 ***********************************************          if(agente_4[i] == "N"){    // N                        Linha4 =  Linha4 - 1;                        Coluna4 = Coluna4;                      }else if(agente_4[i] == "S"){  // S                            Linha4 = Linha1 + 1;                             Coluna4 = Coluna4;                     }else if(agente_4[i] == "L"){  // L                                             Coluna4 = Coluna4 + 1;                                Linha4 = Linha4;                    }else if(agente_4[i] == "O"){   // O                                          Coluna4 = Coluna4 - 1;                             Linha4 = Linha4;                                           }           System.out.println("");                  if((Linha3 >= 0 && Linha3 < 4 ) && (Coluna3>=0 && Coluna3 < 4)){                    System.out.print("\n\tAGENTE_03 DENTRO AMBIENTE\n");                         System.out.printf("Linha:%d Coluna:%d", Linha3, Coluna3);                             System.out.println("");                          ///////////////**************** guarda o agente q n saiu do ambiente **************///////////                             arrayList.add(Arrays.toString(agente_3));                                 /* for(String agente : arrayList){                                               System.out.println(agente);                                 }*/                                     int r3=0;                                 r3++;                                 System.out.println(" R: " + r3);                                 List.add(r3);                  }else{                    System.out.printf("\n\tAGENTE_03 FORA DO AMBIENTE\n");                     System.out.printf("Linha:[%d] Coluna:[%d]", Linha3, Coluna3);                      System.out.println("");                       int r3=0;                         r3--;                         System.out.println(" R: " + r3);                           List.add(r3);                  }                 System.out.println("");                   if((Linha4 >= 0 && Linha4 < 4 ) && (Coluna4>=0 && Coluna4 < 4)){                    System.out.print("\n\tAGENTE_04 DENTRO AMBIENTE\n");                         System.out.printf("Linha:%d Coluna:%d", Linha4, Coluna4);                             System.out.println("");                          ///////////////**************** guarda o agente q n saiu do ambiente **************///////////                                arrayList.add(Arrays.toString(agente_4));                             /*     for(String agente : arrayList){                                               System.out.println( agente);                                 }*/                                  int r4=0;                                 r4++;                                 System.out.println(" R: " + r4);                                 List.add(r4);                  }else{                    System.out.printf("\n\tAGENTE_04 FORA DO AMBIENTE\n");                     System.out.printf("Linha:[%d] Coluna:[%d]", Linha4, Coluna4);                      System.out.println("");                       int r4=0;                         r4--;                         System.out.println(" R: " + r4);                           List.add(r4);                  }                 System.out.println("");                                  Collections.sort(List, Collections.reverseOrder());                                   for(int rank : List){                                               System.out.print( rank);                                 }                System.out.println();               System.out.println();                     List listaCopia  = new ArrayList(arrayList);                       for (Object i : listaCopia) {                        System.out.println(i);                     }      System.out.println();  } } 

Como armazenar vários arrays mesmo depois de reiniciar o programa?

Armazenar “scroll” no LocalStorage

Quando o usuário clica em um determinado botão a posição scroll de um elemento é alterado. Gostaria que essa ação ficasse armazenada no LocalStorage, porém não sei fazer… podem me ajudar?

Aqui meu script:

$  ('.btn.parteum').click(function(){        $  ('#textarea').animate({ scrollLeft: 0 }, 400);       return false;  }); $  ('.btn.parte2').click(function(){        $  ('#textarea').animate({ scrollLeft: 140 }, 400);       return false;  }); 

Ler entrada e armazenar informações específicas em C

Eu quero identificar todas as 32 palavras reservadas de C escritas numa entrada que simula um código C, porém não está armazenando todas e não sei oq tem de errado, obs armazena só se aparece e quais não a quantidade de vezes que aparece. Segue o código e um exemplo de entrada e saída

#include <stdio.h> #include <stdlib.h> #include <string.h> int ja_lido(char reser[32][10] , char lido[10],int t){     int i,j=0,k=0;     for (i=0;i<=t;i++){         if (strcmp(reser[i],lido) == 0){             return 0;         }     }     return 1; } int main(){     char reservadas[32][10] = {"auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","int","long","register","return","short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while"};     char res[32][10],lido='a',pal[30];     int n=0,i,k,j=0;     for(i=0;i<30;i++){         pal[i] = '';     }     while( lido != EOF){         lido = getchar();         if (lido != '(' && lido != ')' && lido != '{' && lido != '}' && lido != ';' && lido != '-' && lido != ' '){             pal[j] = lido;             j++;             for(i=0;i<32;i++){                 if (strcmp(pal,reservadas[i]) == 0){                     if(ja_lido(res,pal,n)){                         strcpy(res[n],pal);                         n++;                         for(k=0;k<j;k++){                             pal[k] = '';                         }                         j=0;                     }                 }             }         }         else{             for(k=0;k<j;k++){                 pal[k] = '';             }             j=0;;         }     }      for(k=0;k<n;k++){         printf("%s ",res[k]);     } 

Um exemplo de entrada, esta como código pra facilitar mas seria um arquivo txt e executado como ./programa

#include<stdlib> #include<math.h>  struct TreeNode {        int val;     TreeNode *left;     TreeNode *right;     TreeNode(int x) : val(x), left(NULL), right(NULL) {} };  int maxDepth(TreeNode* A){      if( A==NULL ){         return 0;     }else{     return max(1+maxDepth(A->left),1+maxDepth(A->right));         }  }  int main(){      struct TreeNode *root = new TreeNode(1);      root->left = new TreeNode(2);     root->right = new TreeNode(3);      root->left->left = new TreeNode(4);     root->left->right = new TreeNode(5);          int count = maxDepth(root);      printf("%d",count);      return 0; } 

e como está saindo:

int else