0

我是 React 新手,想做以下事情:我有一个带有输入元素的反应组件。输入元素的值由来自 webpack 包的 JS 功能控制。用户与地图交互后,输入元素的值总是在变化。我需要将此值传递给反应组件状态,并且正在努力解决它。你能帮忙吗?这是我的代码:

class MyReactComponent extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            lat:"",
        };
    }

    render() {
        return (
           <input 
                type="hidden"
                id="lat"
                name="lat"
                disabled 
                onChange={e => this.setState({ lat: e.target.value})}
             />
    )

我可以在 .html 代码中的控制台中看到输入元素的导入值,但它不会传输到状态。你能帮忙吗?

4

2 回答 2

0

您可以使用 window.somevar 作为全局变量,然后在 react 组件中使用它。这是最简单的方法,但我认为这不是一个好习惯。

于 2020-07-08T16:46:56.907 回答
0

几周前我在做一个项目时遇到了类似的情况。onChange 事件处理程序中指定的更改仅手动发生,即触发 onChange 事件时。即使值以编程方式更改,事件也不会被触发。如果您想在值更改时控制组件的状态,您可以做的一件事是将新值作为道具传递给组件并使用该道具设置状态。这可以使用 componentWillReceiveProps 或静态 getDerivedStateFromProps 以及 componentDidUpdate 方法来完成。

于 2020-07-08T16:54:16.517 回答