Mein Eingabefeld kann nicht bearbeitet werden, wenn ich versuche, den Wert darin zu bearbeiten.Fehler beim Ändern des Wertstatus des Eingabefelds
Ich bin nicht sicher, ob mein onChange-Ereignis ordnungsgemäß verwendet wird, um den Wert der Eingabe zu ändern.
import React from "react";
import * as TodoActions from "../actions/TodoActions";
import TodoStore from "../stores/TodoStore";
export default class Todo extends React.Component {
constructor(props) {
super();
}
deleteTodo() {
TodoActions.deleteTodo(this.props.id);
}
toggleEdit() {
TodoActions.toggleEdit(this.props.id);
}
updateTodo() {
TodoActions.updateTodo(this.props.text);
}
toggleComplete() {
TodoActions.toggleComplete(this.props.id);
}
onChange(e) {
console.log('e.taget.value: '+ e.target.value);
this.setState({
value: e.target.value
});
console.log(value);
}
render() {
const buttonStyle = { margin: "5px" };
const { complete, edit, text, id } = this.props;
const icon = complete ? "\u2714" : "\u2716"
if (edit) {
return (
<li>
<form onSubmit={this.updateTodo.bind(this)}>
<input onChange={this.onChange.bind(this)} value={text} focus="focused"/>
<button onClick={this.toggleEdit.bind(this)} class="btn btn-default btn-sm" style={buttonStyle}>Cancel</button>
<button onClick={this.updateTodo.bind(this)} class="btn btn-success btn-sm" style={buttonStyle}>Update</button>
</form>
</li>
);
}
return (
<li>
<span>{text}</span>
<span onClick={this.toggleComplete.bind(this)} class="btn btn-default btn-xs" style={buttonStyle}>{icon}</span>
<button onClick={this.toggleEdit.bind(this)} class="btn btn-primary btn-sm" style={buttonStyle}>Edit</button>
<button onClick={this.deleteTodo.bind(this)} class="btn btn-danger btn-sm" style={buttonStyle}>Delete</button>
</li>
);
}
}
Meinten Sie 'e.target.value', nicht' value'? Außerdem sollte Ihr 'Super'-Aufruf' super (reps) 'sein. – Li357
@AndrewLi' console.log ('e.taget.value:' + e.target.value); 'funktioniert und wird in meiner Konsole angezeigt. Der Code ist für eine Todo-App und wenn ich auf die 'Edit'-Schaltfläche klicke, erscheint dieses neue Formular, wo der Wert in ein Eingabefeld für mich zur Bearbeitung gelegt wird. Es lässt mich jedoch nicht den Text bearbeiten und ich versuche herauszufinden, wie ich es in eine neue Variable einfügen kann, die ich weitergeben kann. – ByteSettlement
Aber was ist "value"? Es ist also nicht der Fehler definiert ... – Li357