在服务器</option>上渲染<option value =“foo”selected =“”>

时间:2015-04-05 16:42:28

标签: javascript node.js reactjs babeljs

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属性未在服务器上呈现,但在浏览器中正常工作。

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

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

此代码在节点v0.12中使用babel-core进行转换。

这是一个错误,还是我错过了什么?

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

1 个答案:

答案 0 :(得分:3)

这是一个known bug已经fixed in master,因此可能会在React 0.14发布后修复。