いくつかのテキストを編集するためにいくつかの機能を実装しようとしています。リアクション:?と:決定をする
私は状態のオブジェクトのリストを持っています。リストを生成するときに、update
フィールドがfalse
またはtrue
であるかどうかを確認する必要があります。
この決定を行うには、おそらく?
と:
を使用するべきですが、実装方法は不明です。
function AddPerson(props) {
return(
<div>
<input type="text" value= {props.newPerson} onChange = {props.handleUpdate}/>
<button type="submit" onClick= {props.addNewFriend}> Add New </button>
</div>
)
}
function Person(props) {
return (
props.listOfPeople.map((person, i) => {
// this doesn't work
person['update']
? null
: return
(
<li key={i} onClick = {(e) => {props.handleEdit(e, person)}}>{person['name']}</li>
)
})
)
}
falseを返すと、<li ..>
が返されるように変更する必要がありますか?
function ListPeople(props) {
return(
<div>
<ul>
<Person listOfPeople = {props.people} handleEdit = {props.edit}/>
</ul>
</div>
)
}
class App extends Component {
constructor(props) {
super(props)
this.state = {
newPerson: '',
people: [{name:'Eric', update: false} , {name:'Rick', update:false}, {name:'Yoni', update:false}]
};
this.handleUpdate = this.handleUpdate.bind(this)
this.addNewFriend = this.addNewFriend.bind(this)
this.handleEdit = this.handleEdit.bind(this)
}
handleUpdate(e) {
this.setState({newPerson: e.target.value})
}
addNewFriend(){
console.log(this.state.newPerson)
const newFriendList = this.state.people.slice()
this.setState(
{
newPerson: '',
people: newFriendList.concat({name:this.state.newPerson, update:false})
}
)
}
handleEdit(e, person) {
console.log(person)
return null
}
render() {
return (
<div>
<AddPerson handleUpdate = {this.handleUpdate} addNewFriend = {this.addNewFriend} newPerson = {this.state.newPerson} />
<ListPeople people = {this.state.people} edit={this.handleEdit} />
</div>
);
}
}
export default App;
FYI '指揮を? whentrue:falseは '[ternary](https://en.wikipedia.org/wiki/%3F :)と呼ばれます。また、読みにくい傾向があるので、複数の行にまたがって使用することは避けてください。 –
ありがとうございます!その文書を見つけることができませんでした。 –