Javascript 在状态构造函数中使用PropsFromState中的值
我有这个道具界面:Javascript 在状态构造函数中使用PropsFromState中的值,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我有这个道具界面: interface OwnProps { onHide: () => void; show: boolean; onSubmit: (props: SetCompanyUploaderFormSchema) => void; client: Client; } interface PropsFromState { userList: DropDownListItem<string>[]; userListIds: Array&
interface OwnProps {
onHide: () => void;
show: boolean;
onSubmit: (props: SetCompanyUploaderFormSchema) => void;
client: Client;
}
interface PropsFromState {
userList: DropDownListItem<string>[];
userListIds: Array<number>;
}
这个PropsFromState接口:
interface OwnProps {
onHide: () => void;
show: boolean;
onSubmit: (props: SetCompanyUploaderFormSchema) => void;
client: Client;
}
interface PropsFromState {
userList: DropDownListItem<string>[];
userListIds: Array<number>;
}
我正在尝试将状态值selectedUsersIds
设置为PropsFromState
valueuserListIds
我尝试在构造函数中执行此操作:
@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
}
}
@connect(mapStateToProps)
导出默认类EmailModal扩展React.Component{
构造函数(propsFromState:propsFromState,props:OwnProps){
超级(道具);
此.state={
SelectedUserId:propsFromState.UserListId
}
}
我也尝试了这个.props.userListIds
除此之外,我还尝试使用getDerivedStateFromProps
和ComponentWillMount
来设置它。到目前为止,没有任何效果,this.state.SelectedUserID
仍然作为空数组出现
但是,当我在render()
的开头打印this.props.userListIds时,它会正确显示
问题在哪里?构造函数(props:propsFromState){}
然后叫超级(道具)它引发了错误:“PropsFromState”类型的参数不能分配给“OwnProps&Partial&Partial,OwnState>”类型的参数。我是否应该以某种方式更改类声明?是的,构造函数只接收道具,构造函数可以设置该组件的初始状态。我知道您正在使用redux,这很好,但是dux是为了避免本地状态。在这种情况下,查看代码时,甚至不需要设置状态,您只需使用收到的道具的值即可。(当前使用我的手机,当我靠近笔记本电脑时,我可以提供一些示例代码)SelectedUserID将是动态值,根据复选框进行更改。开始时,需要选中所有复选框(所有用户均已选中)。这就是为什么我要将所有用户从该州输入到props中。