4
反応を使ってToDoアプリケーションを作成し、テキストの装飾を変更する際に問題に直面しました。チェックボックスをオンにしてチェックボックスをクリックすると、スタイルが取り消し線に変わります。コードは次のようになります。反応を使用してスタイルをストライクオフに切り替える方法
import React, { Component } from 'react';
import ReactDom from 'react-dom';
import logo from './logo.svg';
import './App.css';
class App extends Component {
constructor(){
super();
this.state={
todo:[]
};
};
entertodo(keypress){
var todo=this.refs.newtodo.value;
if(keypress.charCode == 13)
{
this.setState({
todo: this.state.todo.concat(todo)
});
this.refs.newtodo.value=null;
};
};
todo(data,i){
return (
<li>
<input type="checkbox" onChange={this.todoCompleted.bind(this)}className="option-input checkbox"/>
<div key={data.id} className="item">
{data}
<button onClick={this.remove.bind(this,i)}className="destroy"></button>
</div>
</li>
);
};
remove(i){
var deletetodo = {...this.state.todo};
this.state.todo.splice(i,1);
this.setState({todo:this.state.todo})
};
todoCompleted(){
var todo={...this.state.todo}
if(this.state.checked){
this.setState({
todo:this.state.todo.style.textDecoration=='line-through'
});
}
else {
this.setState({
todo:this.state.todo.style.textDecoration=='none'
});
}
};
render() {
return (
<div>
<div className="lines"></div>
<div>
<input type="text" ref= "newtodo" onKeyPress={this.entertodo.bind(this)}className="inputext"placeholder='todos'/>
</div>
<div className="app">
<ul>
{this.state.todo.map(this.todo.bind(this))}
</ul>
</div>
</div>
);
}
}
export default App;
console:textDecorationが未定義です。助けが必要
おかげような何かを行います。うまくいきます! –
喜んで助けてください:) –
m何らかのエラーを取得する –