2015-04-05 16 views
5

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.

+0

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

+0

Dường như lỗi * chỉ * đã được sửa: https://github.com/ facebook/react/pull/3595 –

+0

Chà, thật nhanh :-D Cảm ơn vì đã cho tôi biết, @insin. – Marius

Trả lời

3

Đây là known bug đã là fixed in master, vì vậy có lẽ sẽ được khắc phục bằng việc phát hành React 0.14.

Các vấn đề liên quan