开发者问题收集

键是未定义的反应

2017-12-06
1152

当我在本地主机中播放此代码时,它告诉我“未定义密钥”

import React from 'react';
import PropTypes from 'prop-types'

class LineTable extends React.Component{

supprimerLine = key => {
    const newLines = {...this.state.newLines};
    newLines[key] = null;
    this.setState({newLines})
};
render(){
return(
    <tr>
        <td>{this.props.details.colone1}</td>
        <td>{this.props.details.colone2}</td>
        <td>{this.props.details.colone3}</td>
        <td><button onClick={() => this.props.supprimerLine(key)}>
                                    supprimer</button></td>
    </tr>)};
static propTypes = {
    supprimerLine: PropTypes.func.isRequired};}
export default LineTable

我认为这是因为我没有导入密钥,但我不知道如何导入它

2个回答

您有两点需要更正。

  1. supprimerLine 在同一个类 LineTable 中定义。

    因此, this.props.supprimerLine(key) 不是调用它的正确方法。它会引发错误。

    正确的方法是 this.supprimerLine(key) 并且

    在构造函数中添加 this.supprimerLine = this.supprimerLine.bind(this) ;

  2. 您尚未在当前上下文或类中的任何地方定义 key 。您需要先定义它。

RIYAJ KHAN
2017-12-06

Key 未定义,因为您的函数上下文不存在。您希望“key”包含什么?

this.props.supprimerLine(key)

也应该未定义,因为您的方法位于您的类中,而不是您的 props 中。

Mosè Raguzzini
2017-12-06