javascript - 在状态构造函数中使用 PropsFromState 的值

标签 javascript reactjs react-redux

我有这个 Prop 界面:

interface OwnProps {
  onHide: () => void;
  show: boolean;
  onSubmit: (props: SetCompanyUploaderFormSchema) => void;
  client: Client;
}

还有这个 PropsFromState 接口(interface):

interface PropsFromState {
  userList: DropDownListItem<string>[];
  userListIds: Array<number>;
}

我这样初始化:

const mapStateToProps = (state: State, props: OwnProps): PropsFromState => ({
  userList: getCompanyTeamListSelector(state),
  userListIds: state.ddls.companyUsers.map(element => Number(element.id))
});

我正在尝试将状态值 selectedUsersIds 设置为 PropsFromStateuserListIds

我尝试在构造函数中执行此操作:

@connect(mapStateToProps)
export default class EmailModal extends React.Component<OwnProps & Partial<PropsFromDispatch> & Partial<PropsFromState>, OwnState> {
  constructor(propsFromState: PropsFromState, props: OwnProps ) {
    super(props);
    this.state = {
      selectedUserIds: propsFromState.userListIds
    }
  }

我也尝试了this.props.userListIds

除此之外,我还尝试使用 getDerivedStateFromPropsComponentWillMount 来设置它。到目前为止没有任何效果,this.state.selecteduserIds 仍然显示为空数组。

但是,当我在 render() 开头打印 this.props.userListIds 时,它会正确显示。

问题出在哪里?

最佳答案

构造函数(props:propsFromState){}

然后调用 super(props);

关于javascript - 在状态构造函数中使用 PropsFromState 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54076399/

相关文章:

PHP、JQuery ajax 不工作

javascript - 切换播放/暂停以响应音频

reactjs - React-hook-form 使用 Material UI 文本字段限制长度和类型

reactjs - 您可能忘记从定义它的文件中导出组件,或者您可能混淆了默认导入和命名导入

reactjs - 连接路由器类型错误: Cannot read property 'dispatch' of undefined

javascript - Dispatch 不是函数 - 带有 React Redux Hooks 的 React 测试库

javascript - 将滚动应用到特定的 DIV

javascript - filter() 返回空数组

javascript - 为什么我在 ReactJs 中得到的表大小是其大小的 4 倍?

reactjs - React + axios + redux 拦截器