<!-- begin snippet: js hide: false console: true babel: true -->
<!-- language: lang-js -->
<ul>
{offersList.map(offer => {
if (offer.serviceType === service) {
return <li> offer </li>;
}
})}
</ul>
<!-- language: lang-html -->
<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>
<!-- end snippet -->
You need to use map instead of forEach and return offer wrapped in ```<li></li>``` tag.
Here is a short snippet to get two ways binding data.
The counter show the value from the parent and is updated from the child
<!-- begin snippet: js hide: false console: true babel: true -->
<!-- language: lang-js -->
class Parent extends React.Component {
constructor(props) {
super(props)
this.handler = this.handler.bind(this)
this.state = {
count: 0
}
}
handler() {
this.setState({
count: this.state.count + 1
})
}
render() {
return <Child handler={this.handler} count={this.state.count} />
}
}
class Child extends React.Component {
render() {
return <button onClick={this.props.handler}>Count {this.props.count}</button>
}
}
ReactDOM.render(<Parent />, document.getElementById("root"));
<!-- language: lang-html -->
<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"></div>
<!-- end snippet -->