html - 使用 ReactJS 映射物化 css <select> 的 <option>

标签 html css reactjs materialize

我在一个必须实现 <select><option> 的 React 组件中工作 功能。

我有这个:

<div className="input-field col s12">
      <select>      
        <option value="" disabled>Choose your option</option>

         {projects.map(function(projects, index) {                    
                  return (
      <option value={projects.name} key={projects.name}>
         {projects.name}
      </option>
            )})}           
     </select>
     <label>Project</label>
     </div>

我还在 componentDidMount() 中初始化了物化选择:

componentDidMount: function() {

    //initialize selects
    $(document).ready(function() {
      $('select').material_select();
    });
}, 
 (...)

但是组件显示的时候没有<options>出现.用检查工具在web源代码中调试生成的html时,有display none的选项,但改成block时,会在它后面创建一个新的select,没有样式。

有什么想法吗?非常感谢。

最佳答案

我发现了问题!!!

$(document).ready(function() {
          $('select').material_select();
        });

必须在显示选择时执行,而不仅仅是在安装组件时执行。所以我不需要在 componentDidMount() 阶段函数中执行 select 的初始化函数,而是在 render() 函数中,因为每次状态改变时(并且它改变因为它填充了 json 数据),我必须执行上面的 jquery 函数。

解决了!希望对其他人有帮助。

关于html - 使用 ReactJS 映射物化 css <select> 的 <option>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064128/

相关文章:

html - 如何根据子元素的数量添加按钮?

javascript - 具有可选路径参数的简单 React 路由器给出 'TypeError: Cannot read property ' 未定义的过滤器

javascript - 我的 Jquery 按钮 - 禁用/启用功能不起作用。谁能告诉我怎么了?

jquery - 更改滚动时菜单的高度

html - 如何让元素掉落而不是在导航栏中并排放置 - bootstrap 4

javascript - 从 prop 事件处理程序设置时 react 状态重置

reactjs - MobX,Store 不可用,请确保它是由某些提供商提供的

css - Webkit 列的负边距问题

html - 括号图像实时预览

html - 如何使 md-hint 居中对齐(material2)