reactjs - 为什么 this.state 在 messageParser 中显示为空
问题描述
我正在使用一个react-chatbot-kit
模块,在console.log("calling getcong",getConfig())
我可以看到数据设置为状态,但是当我尝试检查时在 messageParserconsole.log("state data", this.state)
中显示为空。我不知道我在这里做错了什么请帮助我提前谢谢...
这是以下日志console.log("calling getcong",getConfig())
:
这是console.log("state data", this.state)
:
问题显示为空
import React, { useState, useEffect } from "react";
import Chatbot from "react-chatbot-kit";
import axios from 'axios';
import { createChatBotMessage } from "react-chatbot-kit";
import MessageParser from "./MessageParser";
import ActionProvider from "./ActionProvider";
function App() {
const [getQuestion, setQuestion] = useState([]);
useEffect(() => {
axios
.get("********************")
.then(response => {
setQuestion(response.data.question)
})
}
,[])
const getConfig = () => {
var state = {
questions:getQuestion
}
return {
initialMessages: [
createChatBotMessage(
`Hi I’m here to help you with self-assesment.`
)]
state: state,
}
}
console.log("calling getcong",getConfig())
return (
<div className="App">
<Chatbot
config={getConfig()}
messageParser={MessageParser}
actionProvider={ActionProvider}
placeholderText="Customer Message Here"
/>
</div>
);
}
export default App;
消息解析器文件:
class MessageParser {
constructor(actionProvider, state) {
this.actionProvider = actionProvider;
this.state = state
}
parse = (message) => {
console.log('current message' + message);
console.log("state data", this.state);
}
export default MessageParser;
解决方案
您的 MessageParser 类必须从 React.Component 扩展。只有这样你才能访问状态和渲染方法
class MessageParser extends React.Component {
state = {}
constructor(actionProvider, props) {
this.actionProvider = actionProvider;
super(props)
}
render(){return<></>}
parse = (message) => {
console.log('current message' + message);
console.log("state data", this.state);
}
export default MessageParser;
推荐阅读
- lua - 我的代码在 Minecraft 中的计算机控制的种子分析器上给出了“尝试调用零值”
- node.js - AWS Lambda 数据库连接问题 [更新问题]
- android - mvvm + 实时数据,由于以前的实时数据值重新加载相同的片段
- python - Docker:如何调试本地主机“内部服务器错误”?
- reactjs - why onChange event does not have event.keyCode property in react?
- python - 如何让 pip uninstall 删除安装后创建的文件?
- react-native - 使用 Expo for React Native 时,有没有办法从文件中读取 mime 类型?
- python - 如何使用 setattr 继承类方法/属性而没有属性错误:“cls”对象的“__weakref__”不可写
- python - 我在 Django 中的自定义小部件模型不会提交数据
- python - 如何在熊猫的特定条件下提取某些内容?(感性分析)