0 Почему React возвращает «Object () не функция» при использовании помеченной библиотеки?

вопрос создан в Wed, May 8, 2019 12:00 AM

Я создаю редактор уценок, используя помеченную библиотеку, подобную этой <div id="preview" dangerouslySetInnerHTML={ {__html: marked('Rendered by **marked**.''></div>62, но получаю TypeError: Object ( ...) это не функция.

Нашел два соответствующих поста на SO; сначала и second Я использую тот же синтаксис, что и в ответах, но получаю ошибку TypeError. В обоих постах они использовали метод ReactDOM.render () в конце. Полный код:

import React, { Component } from 'react';
import './App.css';
import { Provider, connect } from 'react-redux';
import { createStore } from'redux';
import { marked } from "marked";

// Redux
const ADD = "ADD";

const addText = (text) => {
  return {
  type: ADD,
  text: text
  }
};

const textReducer = (state = {text: ''}, action) => { 
  switch(action.type) {
    case ADD:
    return Object.assign({},state, { text: action.text })
    default:
    return state
  }
};

const store = createStore(textReducer);

// React
 class App extends Component {
  constructor(props){
    super(props)
    /*this.state = {
      input : ''
    }*/
  this.handleChange = this.handleChange.bind(this);

};

  handleChange(e){
    /*this.setState({
      input: e.target.value
    })*/

    this.props.addText(e.target.value)
  };

  render(){
    return(
      <div className="App-header">
       <textarea id="editor" value={this.props.text} onChange={this.handleChange}></textarea>
       <div id="preview" dangerouslySetInnerHTML={ {__html: marked('Rendered by **marked**.') } }></div>
      </div>
    )
  }
};


// React-Redux
const mapStateToProps = (state) => {
  return {
    text: state.text
  }
};

const mapDispatchToProps = (dispatch) => {
  return {
    addText: (text) => { 
      dispatch(addText(text))
    }
  }
};

const Container = connect(mapStateToProps, mapDispatchToProps)(App);

// eslint-disable-next-line
export default class AppWrapper extends Component {
  render() {
    return(
      <Provider store={store}>
        <Container />
      </Provider>
    );
  }
};

Текст уценки предполагается отображаемым как html в элементе предварительного просмотра, но вместо этого я получаю TypeError: Object (...) не является функцией.

ОБНОВЛЕНИЕ: очевидно, что приставка была неправильно настроена и была установлена ​​в массив вместо объекта. Я исправил это, но я все еще получаю ту же ошибку.

    
0
  1. Я также сделал версию этого приложения для Codesandbox здесь , если вы хотите увидеть ошибку самостоятельно.
    2019-05-15 15: 59: 01Z
0 ответов                              0                         
источник размещен Вот