gpt4 book ai didi

javascript - 更改输入框的值状态时出错

转载 作者:行者123 更新时间:2023-12-03 05:46:47 25 4
gpt4 key购买 nike

当我尝试编辑其中的值时,我的输入框不可编辑。

我不确定我的 onChange 事件是否正确使用来更改输入的值。

import React from "react";

import * as TodoActions from "../actions/TodoActions";
import TodoStore from "../stores/TodoStore";

export default class Todo extends React.Component {
constructor(props) {
super();
}

deleteTodo() {
TodoActions.deleteTodo(this.props.id);
}

toggleEdit() {
TodoActions.toggleEdit(this.props.id);
}

updateTodo() {
TodoActions.updateTodo(this.props.text);
}

toggleComplete() {
TodoActions.toggleComplete(this.props.id);
}

onChange(e) {
console.log('e.taget.value: '+ e.target.value);
this.setState({
value: e.target.value
});
console.log(value);

}

render() {
const buttonStyle = { margin: "5px" };

const { complete, edit, text, id } = this.props;

const icon = complete ? "\u2714" : "\u2716"

if (edit) {
return (
<li>
<form onSubmit={this.updateTodo.bind(this)}>
<input onChange={this.onChange.bind(this)} value={text} focus="focused"/>
<button onClick={this.toggleEdit.bind(this)} class="btn btn-default btn-sm" style={buttonStyle}>Cancel</button>
<button onClick={this.updateTodo.bind(this)} class="btn btn-success btn-sm" style={buttonStyle}>Update</button>
</form>
</li>
);
}

return (
<li>
<span>{text}</span>
<span onClick={this.toggleComplete.bind(this)} class="btn btn-default btn-xs" style={buttonStyle}>{icon}</span>
<button onClick={this.toggleEdit.bind(this)} class="btn btn-primary btn-sm" style={buttonStyle}>Edit</button>
<button onClick={this.deleteTodo.bind(this)} class="btn btn-danger btn-sm" style={buttonStyle}>Delete</button>
</li>
);
}
}

最佳答案

您的<input/>应该是一个受控组件,因为您正在使用 value Prop 。

试试这个

 <input onChange={this.onChange.bind(this)} value={this.state.value || text} focus="focused"/>

并向您的 constructor 添加一个空状态

constructor(props) {
super();
this.state = {}
}

关于javascript - 更改输入框的值状态时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com