【发布时间】:2019-12-26 01:09:00
【问题描述】:
我有一个文本区域,我想在提交表单时将其字符串化为 JSON。我什至会满足于让函数设置 textarea 值。
import React from 'react';
export default class ClinicalMain extends React.Component {
constructor(props) {
super(props);
}
state = {selectedOption: ''}
// my function to update the textarea
reactStringify() {
let obj = {
name: "bob",
age: 4
}
console.log('in stringify');
let value = JSON.stringify(obj);
}
componentDidMount() { }
render() {
return (
<React.Fragment>
<form>
<button type="button"
onClick={this.reactStringify}
id="reactid"
>React stringify</button>
<textarea value={this.value}
defaultValue=""
rows="10" cols="80"
></textarea>
<br />
</form>
</React.Fragment>
)
}
}
let value 不会更新。我需要使用setState 吗? this?
【问题讨论】:
-
我只是想在函数中设置任何值来更改/更新 textarea 框的值....似乎应该“简单”但有问题
-
欢迎来到 SO!对不起,但我不太清楚你想要完成什么。您能否阐明用户应该在文本区域中输入什么内容,以及单击按钮时会发生什么?在不确切知道应该发生什么的情况下,我可以说你会想尝试使用
this.setState()来设置状态。 -
我想要调用函数(它确实如此),然后让它将 textarea 的值设置为任何东西(我想设置为整个表单的 json stringify)只是想让它更新
-
@ggorlen 见上面的评论。所以如果我使用 this.setState(put what here?)
-
不仅如此。我会read the docs--这对 React 来说是非常基础的,而且这个代码的设置方式表明这个页面还没有被查看过。您需要使用
this.state.value和this.setState({value: "foobar"})的受控组件。
标签: javascript reactjs forms jsx