渲染<选项值=“;foo”;选择>在服务器上

Rendering <option value="foo" selected> on the server

本文关键字:gt 选择 服务器 选项 lt 渲染 foo      更新时间:2023-09-26

React v0.12/v0.13:我有一个<select>元素的问题,我想在服务器和客户端上都渲染它(同构)。下面是一个目前重现问题的例子:

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;

selected属性不会在服务器上呈现,但在浏览器中可以正常工作。

我还尝试在<select>元素上设置defaultValue道具,这似乎没有什么区别。当我使用<option value="C" selected>时,它确实工作,但是,它在控制台中发出警告,告诉我使用valuedefaultValue道具。

文档还描述了所需的行为:https://facebook.github.io/react/docs/forms.html#why-选择值

此代码在Node v0.12中运行,使用babel内核进行transpiling。

这是一个bug,还是我遗漏了什么?

更新:这是React中的一个错误。请参阅下面我的评论/链接。

这是一个已知的错误,已在master中修复,因此可能会随着React 0.14的发布而修复。