あなたはreturn
関数内にif-else
ステートメントを持つことはできません。また、あなたはまた、ternary operators
代わりにif-else
を利用することができます。また、私はあなたが重要な構文の
のいくつかの明確な基本はまた明確にリアクトあなたを取得する基本的な反応のチュートリアルのいくつかに行くを持っていない推薦するエラーが何であるかがわかります。そのエラーを検索するだけで、簡単に問題を見つけることができます。また、エラーの正確な場所を確認してから、適切な方法でデバッグする必要があります。これが役立ち、残りのエラーを自分でデバッグできることを願っています。
あなたはreturn
ブロック内if
文をやっているためです。この方法
renderItem(){
var renderIt = null;
if(this.state.isEditing){
renderIt = <div><input type="text" />
<button>Save</button></div>
}else{
renderIt = this.state.items.map((item,i)=> <li key={i}>{item}
<button>Edit</button>
<button onClick={this.dlt_item.bind(this,i)}>Delete</button>
</li>
)
}
return (
<div>{renderIt}</div>
)
},
JSFIDDLE
var App = React.createClass({
getInitialState(){
return {
items:[1,2,3],
isEditing:false
}
},
dlt_item(key){
var newItems = this.state.items.filter((item,i)=> i !== key)
this.setState({items:newItems})
},
edit_handler(){
this.setState({isEditing:true})
},
isEditing_html(){
return(
<div>
<input type="text" />
<button>Save</button>
</div>
)
},
renderItem(){
return(
this.state.items.map(function(item,i) {
var temp = null;
if(this.state.isEditing){
temp = this.isEditing_html()
}else{
temp = <div><button>Edit</button>
<button onClick={this.dlt_item.bind(this,i)}>Delete</button></div>
}
return (<li key={i}>{item}
{temp}
</li>
)
}.bind(this)
)
)
},
render(){
return(
<ul>
{this.renderItem()}
</ul>
)
}
})
ReactDOM.render(<App />, document.getElementById('container'));
JSFIDDLE
@AndrewL反応するから?ユーザーの[編集]をクリックし、入力テキスト –
は、本当に簡単です。どこ?私はそれを見ませんでした。 jsfiddleリンクをクリックすると、エラーが表示されます。 @AndrewL。 –
@AndrewLを示した場合、私が欲しいもの –