Моя программа не работает должным образом, и когда я нажимаю кнопку «Добавить игрока», никакие документы не добавляются в Монго - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу написать простую программу для добавления имени игрока на экран и mongodb, но я новичок и хочу написать программу в meteor для добавления игроков в mongo, но когда я нажимаю кнопку добавления игрока, программане работает должным образом, и никакие документы не добавляют к Монго:

import './main.html';
import React from 'react';
import ReactDom from 'react-dom';
import {Meteor} from 'meteor/meteor'
import {Players} from './../imports/api/Players'
import {Tracker} from 'meteor/tracker'

const renderPlayers = (playersList) => {
   return playersList.map((player)=> {
        return <p key={player._id}>{player.name} has {player.score} point(s).</p>;
    });
};

const handleSubmit = (e) => {

    e.preventDefault();

    let playerName = e.target.playername.value;
    if (playerName){
        e.target.playerName.value = '';
        Players.insert ({
            name: playername,
            score: 0
        })
    }
}

Meteor.startup(() => {

    Tracker.autorun(() =>{
        let playersList = Players.find().fetch();
        let title = 'Score Keep';
        let name = 'Fateme';
        let jsx = (
            <div>
                <h1>{title}</h1>
                {renderPlayers(playersList)}
                <form name="New-Player" onSubmit={handleSubmit}>
                    <input type="text" name="PlayerName" placeholder="player Name"/>
                    <input type="submit" onClick={handleSubmit} value="add player"/>
                </form>
            </div>
        );
        ReactDom.render(jsx, document.getElementById('app'));
    });

});

1 Ответ

0 голосов
/ 29 ноября 2018

Из вашего кода e.target ссылается на кнопку, к которой прикреплен обработчик onClicked.Для ссылки на значение поля ввода вы можете использовать обычный Javascript или сделать это способом React, используя контролируемые компоненты или неконтролируемые компоненты.Если вы используете обычный Javascript, добавьте идентификатор к входному тегу и сделайте ссылку на него, таким образом

  const playerName 
  =document.getElementById("idofiputtag").value;

PlayerName будет содержать значение в текстовом поле.

...