当前位置: 首页 > 面试题库 >

在Reactjs中创建依赖字段?

詹弘毅
2023-03-14
问题内容

这就是我渲染的

<select>
   <option>1</option>
   <option>2</option>
</select>

下拉列表中* 选择任何选项。我必须 在其旁边 呈现 另一个下拉列表*

<select>
   <option>1</option>
   <option>2</option>
</select>
<select>
   <option>1.1</option>
   <option>1.2</option>
</select>

然后从 第二个下拉列表中 选择选项。我必须在其旁边呈现文本类型的输入字段。

我该如何在反应中实施呢?

var React = require('react');
var ReactDOM = require('react-dom');

var View = React.createClass({

getInitialState: function() {
     return {
         value: '------'
     }
},
handleChange: function(event){
     this.setState({value: event.target.value});
     this.getFields(event.target.value);

},
handleClick : function(){

},
render : function(){
    return (<div>
            <p>
                <i className="plusSymbol fa fa-minus-circle"></i>
                <select onChange={this.handleChange} value={this.state.value} className="js-example-basic-single">
                <option value="">------</option>
                <option value="1">1</option>
                <option value="2">2</option>
                </select>
            </p>
            <p>
                <i onClick={this.handleClick} className="plusSymbol fa fa-plus-circle"></i>
                <span>Add a new condition</span>
            </p>
        </div>);
    }});
   module.exports = View;

因此,我的视图应如下所示:[Dropdown] [Dropdown] [Text Field]


问题答案:

以下示例应为您指明正确的方向…

var Hello = React.createClass({

  getDefaultProps: function () {
    return {
      fieldMap: {
        "1": [
          { value: "1.1", label: "1.1" },
          { value: "1.2", label: "1.2" }
        ],
        "2": [
          { value: "2.1", label: "2.1" },
          { value: "2.2", label: "2.2" }
        ]
      }
    }
  },

  getInitialState: function() {
     return {
         firstValue: '',
         secondValue: '',
         thirdValue: ''
     }
  },

  getOptions: function (key) {    
    if (!this.props.fieldMap[key]) {
      return null;
    }

    return this.props.fieldMap[key].map(function (el, i) {
        return <option key={i} value={el.value}>{el.label}</option>
    });
  },

  handleFirstLevelChange: function (event) {
    this.setState({
      firstValue: event.target.value,
      secondValue: '',
      thirdValue: ''
    });
  },

  handleSecondLevelChange: function (event) {
    this.setState({
        secondValue: event.target.value,
      thirdValue: ''
    });
  },

  handleThirdLevelChange: function (event) {
      this.setState({
        thirdValue: event.target.value
    });
  },

  getSecondLevelField: function () {
    if (!this.state.firstValue) {
        return null;
    }

    return (
        <select onChange={this.handleSecondLevelChange} value={this.state.secondValue}>
        <option value="">---</option>
        {this.getOptions(this.state.firstValue)}
      </select>
    )
  },

  getThirdLevelField: function () {
    if (!this.state.secondValue) {
        return null;
    }

    return (
        <input type="text" onChange={this.handleThirdLevelChange} value={this.state.thirdValue} />
    )
  },
  render: function() {
    return (
    <div>
        <select onChange={this.handleFirstLevelChange} value={this.state.firstValue}>
        <option value="">---</option>
        <option value="1">1</option>
        <option value="2">2</option>
      </select>
      {this.getSecondLevelField()}
      {this.getThirdLevelField()}
    </div>
    );
  }
});

在https://jsfiddle.net/27u9Lw4t/1/上现场观看



 类似资料:
  • Q1我如何在LibA中包含依赖项,这样当一些其他项目包含这个库时,它就不应该担心我的库的内部依赖项。 Q3当某人包含一个来自jcenter的库时,是否会带来所有的依赖关系? 任何帮助都将非常感谢。:)

  • 我试图不去增加很复杂的结构代码,保持简洁可测试性的代码和好的实践,我想我应该用Kotlin从其它方面去简化代码。如果你想了解一些控制反转或者依赖注入的话题,你可以查看我关于Android中使用Dagger注入的一系列文章。第一篇文章有关于他们这个团队的简单描写。 一种简单的方式,如果我们想拥有一些独立于其他类的类,这样更容易测试,并编写代码,易于扩展和维护,这时我们需要使用依赖注入。我们不去在类内

  • 我已经创建了一个包,通过导入其他程序员的代码来供他们使用。我的程序使用其他jar文件进行XML解析,我不想让其他人担心依赖关系,什么是确保我的jar文件总是获得它的依赖关系的最佳方法? 是否应在原始JAR中包含依赖项? 有其他方法吗?

  • 我有一个库,我称之为,它是另一个项目的依赖项,名为。在的构建中。gradle,我正在使用,它以如下方式指定为依赖项: 这很有效-已编译。但是,当我在我的项目中使用它时,我得到了以下内容: <code>生成。的gradle如下所示: 可能这是因为库在,但它没有正确的位置来搜索Maven存储库。有没有一种方法可以使这些搜索位置以及依赖关系本身变得短暂?

  • 问题内容: 目前,我有一种方法可以根据给定的String充当工厂。例如: 我要做的是避免在类列表增加时出现整个if-else问题。我想我需要有两种方法,一种将Strings注册到类中,另一种基于操作的String返回类。 用Java做到这一点的一种好方法是什么? 问题答案: 在打开字符串之前,您所做的可能是最好的方法。( 编辑2019: 可以打开字符串-使用它。) 您可以创建工厂对象以及从字符串到

  • PS D:\React\anti-app

  • 当你首次启动 vite 时,你可能会注意到打印出了以下信息: Optimizable dependencies detected: (侦测到可优化的依赖:) react, react-dom Pre-bundling them to speed up dev server page load...(将预构建它们以提升开发服务器页面加载速度) (this will be run only when

  • 我正在使用maven shade插件创建一个胖罐子,其中也包括一些弹性城堡罐子。但这造成了问题,因为Bouncy Castle的未签名版本。