React v0.12/v0.13: Tôi gặp sự cố với yếu tố <select>
mà tôi muốn hiển thị cả trên máy chủ và trong khách hàng (đẳng cấu). Dưới đây là một ví dụ mà hiện tái tạo vấn đề:Hiển thị <option value = "foo" trên máy chủ
const React = require("react");
const SelectedDebug = React.createClass({
displayName: "SelectedDebug",
render() {
return (
<div>
<select value="C">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</div>
);
}
});
module.exports = SelectedDebug;
Thuộc tính selected
không trả lại trên máy chủ, nhưng hoạt động tốt trên trình duyệt.
Tôi cũng đã thử đặt giá trị defaultValue
trên phần tử <select>
, điều này dường như không tạo sự khác biệt. Tuy nhiên, có hoạt động khi tôi sử dụng <option value="C" selected>
, điều này sẽ cảnh báo trong bảng điều khiển yêu cầu tôi sử dụng chế độ bảo vệ value
hoặc defaultValue
.
Các tài liệu cũng mô tả hành vi mong muốn: https://facebook.github.io/react/docs/forms.html#why-select-value
Mã này đang chạy trong Node v0.12 sử dụng babel-core cho transpiling.
Đây có phải là lỗi hay tôi đang thiếu thứ gì đó?
Cập nhật: Đây là lỗi trong React. Xem nhận xét/liên kết của tôi bên dưới.
Rõ ràng, đây là lỗi đã biết: https://github.com/facebook/react/issues/3594. (Tôi sẽ không xóa điều này, vì nó có thể giúp người nào đó googling lỗi này, và kể từ khi Facebook tiếp tục đóng vấn đề tại GitHub.) – Marius
Dường như lỗi * chỉ * đã được sửa: https://github.com/ facebook/react/pull/3595 –
Chà, thật nhanh :-D Cảm ơn vì đã cho tôi biết, @insin. – Marius