我正在尝试在React中为SurveyJS中实现的调查实现一个处理程序.这适用于多项选择题,可能有"无以上"或"不愿回答"等答案.如果选择了其中一个答案,则应清除所有其他答案,如果选择了不同的答案,则应清除这些复选框.我对其中任何一个单独做得很好,但是对于存在两个选项的问题都有问题,特别是在两个特殊选项之间来回切换时.
我认为发生的是当一个答案触发处理程序并取消选中另一个复选框时,它会再次触发处理程序.我的解决方案是设置一个状态,指示处理程序何时处于此过程的中间,而不是在此时再次执行.
我在这里得到了一个JS解决方案:https://github.com/surveyjs/editor/issues/125 - 以下是我尝试将其转换为React.(只包括代码的相关部分.)
但是,在编译时,它会出现以下错误:
[at-loader]中的错误./src/components/Survey/SurveyContainer.tsx:55:19 TS2339:属性'ValueChanging'在'Readonly <{}>'类型中不存在.
我找不到任何有关此特定错误的信息.其他对状态的引用(即我设置它的地方)正在工作.为什么我不能读它?
谢谢!
零件:
import * as React from 'react';
import { Component } from 'react';
import { Survey, surveyStrings } from 'survey-react';
import 'whatwg-fetch';
import Marked from '../Marked';
import * as style from './style';
interface Props {
surveyJson: object;
complete: boolean;
resultMarkdown: string;
surveyTitle: string;
sendSurveyAnswers: (answers: object[]) => void;
noneOfTheAboveHandler: (survey: object, options: object) => void;
}
Survey.cssType = 'standard';
surveyStrings.progressText = '{0}/{1}';
surveyStrings.emptySurvey = '';
export …Run Code Online (Sandbox Code Playgroud)