Как взять массив, разделенный запятыми, и преобразовать его в отдельные элементы списка? Реагировать.в JS и JavaScript
Итак, у меня есть этот массив, который отображается на DOM следующим образом:
jamaican rum,fresh lime juice,simple syrup,Angostura Aromatic Bitters
Но я хочу показать его DOM следующим образом:
- ямайский ром
- свежий сок лайма
- простой сироп
- Ангостура Ароматическая Горькая
Это то, что у меня есть до сих пор в моем детском компоненте. recipeIngredients - это список, который я хочу превратить в неупорядоченный список:
render(){
const recipe = this.props.recipe;
const recipeIngredients = recipe.ingredients.toString();
return (
<div>
<li>{recipe.recipeName}</li>
<li>{recipeIngredients}</li>
<div>
<img src={recipe.smallImageUrls} alt=""/>
</div>
</div>
)
}
2 ответов:
Чтобы создать неупорядоченный список, вам не нужно преобразовывать массив
recipeIngredientsв строку, непосредственно запустить цикл и создать список.Напишите это так:
render(){ const recipe = this.props.recipe; const recipeIngredients = recipe.ingredients; return ( <div> <li>{recipe.recipeName}</li> <li> <ul> {recipeIngredients.map((el,i) => <li key={i}>{el}</li> )} </ul> </li> <div> <img src={recipe.smallImageUrls} alt=""/> </div> </div> ) }Рабочий Код:
class App extends React.Component{ render(){ const recipe = this.props.recipe; const recipeIngredients = recipe.ingredients; return ( <div> <li>{recipe.recipeName}</li> <ul> {recipeIngredients.map((el,i) => <li key={i}>{el}</li> )} </ul> <div> <img src={recipe.smallImageUrls} alt=""/> </div> </div> ) } } var arr = ["jamaican rum", "fresh lime juice", "simple syrup", "Angostura Aromatic Bitters"]; ReactDOM.render(<App recipe={{recipeName:"Hello", ingredients: arr, smallImageUrls: ''}}/>, document.body)<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
Для этого типа ситуации я предпочитаю использовать карту.
render() { let recipeArray = [ "jamaican rum", "fresh lime juice", "simple syrup", "Angostura Aromatic Bitters" ]; let items = recipeArray.map((item, index) => <li key={index}>{item}</li>); return ( <div> <ul>{items}</ul> </div> ); }Вот ссылка CodePen на рабочий код: https://codepen.io/anon/pen/ypEvVm
Comments