javascript - ReactJS - 未定义的元素

标签 javascript css reactjs

我在下面有这个组件,changeColor() 函数导致错误消息:

TypeError: Cannot set property 'color' of undefined

这是组件中唯一的错误。所有其他事情都在顺利进行。 JSON 数据获取良好,组件渲染也很好。当然是在我实现阻止应用程序的函数 changeColor() 之前。

import React, { Component } from 'react'

var data = require('./db.json');

class Cronology extends Component {
    constructor(props) {
        super(props)
        this.state = {
            cronology: [],
            year: "",
            description: ""
        }

        this.changeColor = this.changeColor.bind(this)
    }

    componentDidUpdate() {
        this.setState({
            cronology: data.cronology
        })

        this.changeColor();
    }

    changeColor() {
        document.querySelectorAll('p').style.color = 'red'
    }

    render() {
        return (
            <table>
                {
                    this.state.cronology && this.state.cronology.map(
                        (i) => {
                            return (
                                <tr>
                                    <th className="column1">• {i.year}</th>
                                    <th className="column2"><p>{i.description}</p></th>
                                </tr>
                            )
                        }
                    )
                }
            </table>
        )
    }
}
export default Cronology;

最佳答案

您的 changeColor() 方法使用 document.querySelectorAll('p') 返回一个集合。您必须针对特定元素。

document.querySelectorAll('p')[0].style.color = "red" 例如

https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll

关于javascript - ReactJS - 未定义的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454497/

相关文章:

javascript - Internet Explorer 第 1 行字符 1 代码 0 错误

javascript - 通过将图像分成几 block 来创建图像交换页面

css - 当 css 变换比例应用于子 div 时,父 div 高度不会设置动画

javascript - React redux mapStateToProps 未设置返回到我的 props

javascript - 停止 javascript 直到 jquery 触发器完成

javascript - JCanvas 文本中的增量整数

jquery - 无论浏览器窗口大小如何,如何将图像保持在页面中央?

reactjs - 深度刷新 firebase 后 react 生产路由器 404

javascript - 带 d3 图表的 enzyme 测试支架

javascript - 使用 Node.js 的 native 抽象时如何管理内存?