简体   繁体   English

如何使用具有地图功能的状态值在反应组件中显示重复 ui

[英]How to use a state value with map function to display repeat ui in react component

I have a react component that I have a state value that I want to use in a .map function in order to show repeat ui.我有一个react组件,我有一个state值,我想在.map函数中使用它以显示重复的 ui。

class ReviewerRequirements extends Component {
  state = {
    reviewPositions: 2
  }

  showSkillsModalUI = () => {
    const { reviewPositions } = this.state;

    var skills = reviewPositions; // user defined length
    for(var i = 0; i < skills.length; i++) {
      return <li>Value</li>[i];
     }
   }

Problem : you want to repeat the UI based on value in reviewPositions问题:您想根据reviewPositions 中的值重复 UI

map can be used on a array, but what you have is a number, i would suggest you converting this into a array and using the same for map . map可以在数组上使用,但是您拥有的是一个数字,我建议您将其转换为数组并使用相同的map

    var data = [];
    var length = reviewPositions; // user defined length

    for(var i = 0; i < length; i++) {
        data.push('undefined');
    }

    const lis = data.map((position, index) => {
      return (
          <li key={index}>
            <div className="two wide column">
              <p>Role</p>
            </div>
            <div className="two wide column">
              <p># of days required</p>
            </div>
            <div className="two wide column">
              <p>From Date</p>
            </div>
            <div className="two wide column">
              <p>To Date</p>
            </div>
            <div className="two wide column">
              <p>Language Skills</p>
            </div>
            <div className="four wide column">
              <p>Content Area Skills</p>
            </div>
            <div className="two wide column">
              <p>Other Skills</p>
            </div>
          </li>
      );
    });

    render(){
      return <ul className="ui grid">
      {lis}
      </ul>
    }

try this尝试这个

//this below code generate the n number of array based on your reviewPositions
Array.from(new Array(reviewPositions),(val,index)=>index+1)
//if reviewPositions = 2 
//result  [1,2]

 class ReviewerRequirements extends Component { state = { reviewPositions: 2 } showSkillsModalUI = () => { const { reviewPositions } = this.state; Array.from(new Array(reviewPositions),(val,index)=>index+1) .map((position, index) => { return ( <ul className="ui grid"> <li key={index}> <div className="two wide column"> <p>Role</p> </div> <div className="two wide column"> <p># of days required</p> </div> <div className="two wide column"> <p>From Date</p> </div> <div className="two wide column"> <p>To Date</p> </div> <div className="two wide column"> <p>Language Skills</p> </div> <div className="four wide column"> <p>Content Area Skills</p> </div> <div className="two wide column"> <p>Other Skills</p> </div> </li> </ul> ); }); }; }

You can create an array based on the number in your state and return it.您可以根据您所在州的数字创建一个数组并返回它。 Then you can use that result anywhere in your app.然后你可以在你的应用程序的任何地方使用这个结果。

 class ReviewerRequirements extends React.Component { state = { reviewPositions: 2 } showSkillsModalUI = () => { const { reviewPositions } = this.state; const list = []; for (let i = 0; i < reviewPositions; i = i + 1) { list.push( // Find a good key instead of using the iterator here. <li key={i}>Value</li> ) } return list; }; render() { return ( <div> Some other thing here. {this.showSkillsModalUI()} </div> ) } } ReactDOM.render(<ReviewerRequirements />, document.getElementById("root"));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root" />

Here is what I did这是我所做的

 showSkillsModalCategoryUI = () => { const { reviewPositions, noOfDays, options, startDate, endDate, } = this.state; var data = []; var length = reviewPositions; // user defined length for (var i = 0; i < length; i++) { data.push('undefined'); } const row = data.map((position, index) => { return ( <div key={index}> <List.Item> <div className="ui grid"> <div className="two wide column"> <p>Role</p> </div> <div className="two wide column"> <Dropdown options={options} placeholder="# of Days" search selection fluid allowAdditions value={noOfDays} onAddItem={this.handleNumberOfDaysAddition} onChange={this.handleNumberOfDaysChange} /> </div> <div className="two wide column"> <Form.Field name="startDate" label={'Start Date'} control={DatePicker} placeholder="Please select start Date" isClearable={true} selected={startDate && startDate} selectsStart minDate={moment()} startDate={startDate && startDate} onChange={this.handleStartDateChange} /> </div> <div className="two wide column"> <Form.Field name="endDate" label={'End Date'} control={DatePicker} placeholder="Please select end date" isClearable={true} selected={endDate && endDate} selectsEnd startDate={startDate && startDate} minDate={startDate && startDate} endDate={endDate} onChange={this.handleEndDateChange} /> </div> <div className="two wide column"> <p>Language Skills</p> </div> <div className="four wide column"> <p>Content Area Skills</p> </div> <div className="two wide column"> <p>Other Skills</p> </div> </div> </List.Item> </div> ); }); return row; };

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在反应状态钩子上使用map函数 - How to use map function on react state hook 如何在反应的另一个组件中显示 function 值? - How to display function value in another component in react? 如何获取 map 函数内部组件的状态值? - how to get values of state of that component that is inside map function react? React:如何将状态值传递给另一个组件并使用它来呈现组件 - React: How to pass State value to another component and use it to render a component 如何使用 map function 显示 json 在 React.js 上的组件键上有空格 - How to use map function to display json having spaces on key to component on React.js 如何在 React 中使用 function 返回值作为 state? - How to use function return value as a state in React? 使用 a.map function 设置 React Material UI 组件的样式 - Styling a React Material UI Component with a .map function 如何从 class 组件更新功能组件的 state 以便在反应中显示 map 中的项目 - How do I update state of a functional component from a class component in order to display items from a map in react 如何在材料ui的makeStyles中使用state值反应 - how to use state value in makeStyles in materail ui react 如何推送到 map 值数组并将其用作 React 中的 state? - How to push to a map value array and use it as state in React?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM