无论如何,React 应用程序都没有在 Codepen 中显示?

React app not showing in Codepen no matter what?

我有一个在 VS Studio 中制作的 React 应用程序,将其放入 codepen,它似乎没有加载任何东西,有什么建议吗?

我已尝试确保 React 已链接并检查了我的所有语法,在本地主机上没有错误但在 codepen 中没有显示。

代码我看了好几遍,感觉是个愚蠢的错误

https://codepen.io/donnieberry97/pen/EzmOvW

    class TodoListt extends React.Component {
      state = {};

      constructor(props) {
        super(props);

        this.state = {
          userInput: "",
          list: [],
          editing: false,
        };
      }

      changeUserInput(input) {
        this.setState({
          userInput: input
        })
      }


      addToList() {
        if (this.state.userInput === "") { (alert("Please enter a To-do")); return; };
        const { list, userInput } = this.state;
        this.setState({
          list: [...list, {
            text: userInput, key: Date.now(), done: false
          }],
          userInput: ''
        })
      }

      handleChecked(e, index) {
        console.log(e.target.checked);
        const list = [...this.state.list];
        list[index] = { ...list[index] };
        list[index].done = e.target.checked;
        this.setState({
          list
        })
      }

      handleEditing(e) {
        this.setState({
          editing: true
        })
      }

      handleRemoved(index) {
        const list = [...this.state.list];
        list.splice(index, 1);

        this.setState({
          list
        })
      }

      render() {

        var viewStyle = {};
        var editStyle = {};

        if (this.state.editing) {
          viewStyle.display = "none"
        }
        else {
          editStyle.display = "none"
        }


        return (
          <div className="to-do-list-main">
            <input
              onChange={(e) => this.changeUserInput(e.target.value)}
              value={this.state.userInput}
              type="text"
            />
            <div class="submitButton">
              <button onClick={() => { this.addToList(this.state.userInput) }}>Add todo</button>
            </div>

            {this.state.list.map((list, index) => (
              <div className="form">
                <ul>
                  {/* <div style={viewStyle} onDoubleClick={this.handleEditing.bind(t his)}> */}

                  <li key={list.key}>
                    <div class="liFlexCheck">
                      <input type="checkbox" onChange={(e) => this.handleChecked(e, index)} />
                    </div>
                    <div class="liFlexText">
                      <div class="liFlexTextContainer">
                        <span style={{ textDecoration: list.done ? 'line-through' : 'inherit' }}>
                          {list.text}
                        </span>
                      </div>
                    </div>
                    <button onClick={(index) => this.handleRemoved(index)}>Remove</button>
                    <input
                      type="text"
                      style={editStyle}
                      value={list.text}
                    />
                  </li>
                  {/* </div> */}
                </ul>
              </div>
            ))}


          </div>
        );
      }
    }

删除 import 语句,工作 example

当你有 外部脚本 时,你不应该使用 import

此外,您的代码中有许多错误需要处理,例如:

  • <div class="submitButton">,使用className.
  • 列表中的每个 child 都应该有一个唯一的 key 道具。
  • 带有 value 属性但没有 onChange 处理程序的表单字段。

查看日志:

在 codpen 中,您不需要导入 react 而只是编写代码, 这是 codepen 的工作之一:codepen

来自codesandbox,你也可以学习所有导入,因为它不使用任何外部脚本, 如果您向其中添加导入,您的代码将正常工作 那就是 import ReactDOM from 'react-dom'; codesandbox 将显示所有这些建议, 这是 codesandbox 工作示例:codesandbox