Tôi đã tạo danh sách TODO đơn giản này và khi tôi muốn chọn hộp kiểm tôi không thể.React.js không thể thay đổi trạng thái hộp kiểm
import React from 'react';
const TodoItem = React.createClass({
render() {
return (
<div>
<span>{this.props.todo}</span>
<input type="checkbox" checked={this.props.done} />
</div>
);
}
});
export default TodoItem;
Phụ huynh:
import React from 'react';
import TodoItem from './TodoItem';
import AddTodo from './AddTodo';
const TodoList = React.createClass({
getInitialState() {
return {
todos: [{
todo: 'some text',
done:false
},{
todo: 'some text2',
done:false
},
{
todo: 'some text3',
done:true
}]
};
},
addTodo (childComponent) {
var todoText = childComponent.refs.todoText.getDOMNode().value;
var todo = {
todo: todoText,
done:false
};
var todos = this.state.todos.concat([todo]);
this.setState({
todos:todos
});
childComponent.refs.todoText.getDOMNode().value = '';
},
render() {
var Todos = this.state.todos.map(function(todo) {
return (
<TodoItem todo={todo.todo} done={todo.done} />
)
});
return (
<div>
{Todos}
<AddTodo addTodo={this.addTodo}/>
</div>
);
}
});
export default TodoList;
Mua tại sao tôi phải làm điều này? tôi không cần onChange xử lý, những gì tôi cần phải viết bên trong xử lý này? – Bazinga
Bạn cần nó vì React mong đợi một. Đó là những gì được gọi là đầu vào được kiểm soát hoặc không kiểm soát được. Đọc tại đây, tại http://facebook.github.io/react/docs/forms.html –
Tôi đã thử nghiệm phương pháp này nhưng nó không hoạt động đối với mã của tôi. Tôi đang sử dụng thành phần Hộp kiểm từ Giao diện người dùng Material. – Casper