reactjs - 在字符串数组中连接字符串变量
问题描述
我有一个字符串数组和一个字符串类型的变量,当我按下步骤向导表单中的下一步按钮时,我想使用从子组件到父组件的回调函数将该变量连接到数组,问题是它没有按我希望的那样工作,即使我做了一个 if 语句,它也会一次又一次地添加相同的变量,我不知道该怎么做才能解决它
父组件函数
myCallback = () => {
if (this.state.modules.includes(this.state.moduleTitle)) {
this.setState({ modules: this.state.modules });
}
//works fine when there are no modules
if (this.state.moduleTitle == "") {
this.setState({ modules: this.state.modules });
}
else {
this.setState({ modules: this.state.modules.concat(this.state.moduleTitle) })
}
}
“moduleTitle”是字符串变量,“modules”是字符串数组
子组件
continue = e => {
e.preventDefault();
// this.setState({ value: "full" });
this.props.callbackFromParent();
this.props.nextStep();
}
continue 函数用于进入表单的下一步
解决方案
看起来您需要做的就是moduleTitle
通过回调将新的传回:
continue = e => {
e.preventDefault();
const currentTitle = this.props.title // or whatever your prop is called
this.props.callbackFromParent(currentTitle);
this.props.nextStep();
}
并在另一端处理它:
myCallback = newModuleTitle => {
const currentModules = this.state.modules
if (newModuleTitle !== '' && !currentModules.includes(newModuleTitle)) {
this.setState({ modules: [...currentModules, newModuleTitle] })
}
}
推荐阅读
- reactjs - React 17 和 webpack 5 在 IE11 中不起作用
- json - 如何在 JSON 输出中将空单元格保持为空而不是忽略单元格(Vue-XLSX)
- apache-spark - Pyspark 中的指数函数
- javascript - Node.js:使用数据类型的问题
- android-studio - 为什么当我设置图像时应用程序没有成功启动但它在没有图像/徽标的情况下工作?
- android - 如何在折线图中显示条目的图标
- javascript - Googlesheets api在单元格值中插入'
- python - 为什么 pygame 显示器上没有显示地图?
- android - 图像按钮需要点击两次才能在 Android 中删除 Fire 存储数据并更新 UI
- python - iqrt 函数 ValueError