【问题标题】:Rendering <option value="foo" selected> on the server在服务器上渲染 <option value="foo" selected>
【发布时间】:2015-06-10 03:55:51
【问题描述】:

React v0.12/v0.13:我遇到了一个&lt;select&gt; 元素的问题,我希望在服务器和客户端(同构)中都呈现该元素。这是一个当前重现问题的示例:

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

我还尝试在 &lt;select&gt; 元素上设置 defaultValue 属性,这似乎没有什么不同。当我使用&lt;option value="C" selected&gt; 时,它确实工作,但是,这会在控制台中引发警告,告诉我使用valuedefaultValue 属性。

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

此代码在 Node v0.12 中运行,使用 babel-core 进行转译。

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

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

【问题讨论】:

  • 显然,这是一个已知的错误:github.com/facebook/react/issues/3594。 (我不会删除这个,因为它可能会帮助那些在谷歌上搜索这个错误的人,而且因为 Facebook 一直在 GitHub 上关闭这个问题。)
  • 看起来这个错误刚刚得到了修复:github.com/facebook/react/pull/3595
  • 哇,真快 :-D 谢谢你告诉我,@insin。
  • @insin - 你能补充一个答案吗,在列表中看到这个问题的人可能会认为这个问题还没有解决方案?

标签: javascript node.js reactjs babeljs


【解决方案1】:

这是一个 known bug,之前是 fixed in master,所以大概会在 React 0.14 版本中得到修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 2017-03-09
    • 2012-04-27
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多