1. Nessa aula, vamos consertar um detalhe que é para salvar o addressId. Nós estamos salvando aqui apenas o value, só que, precisamos no addressId salvar o key. Vamos então lá em “DropDownComponent” e vamos criar mais uma prop, que será essa string definindo se é key ou value

    interface DropDownProps {
      data: Object[];
      placeholder: string;
      setSelected: React.Dispatch<SetStateAction<string>>;
      saveMethod: string;
    }
    
    const DropDownComponent = ({
      data,
      placeholder,
      setSelected,
      saveMethod,
    }: DropDownProps) => {
    
    return (
      <DropDownContainer>
        <DropDown
          setSelected={(val: string) => setSelected(val)}
          data={res}
          placeholder={placeholder}
          save={saveMethod === "value" ? "value" : "key"}
          search={false}
          arrowicon={<ArrowIcon source={arrowIcon} />}
        />
      </DropDownContainer>
    );
    
  2. Agora, nós iremos pesquisar pelos locais que usam o dropdown e iremos adicionar, começando pelo nosso addProduct

    <DropDownComponent
      data={Category}
      placeholder="Selecione a categoria"
      setSelected={setCategorie}
      saveMethod="value"
    />
    
    <DropDownComponent
      data={address}
      placeholder="Selecione o endereço"
      setSelected={setAddressId}
      saveMethod="key"
    />
    
  3. E aí ao fazermos isso, quando clicarmos em um endereço no dropDown, ele vai aparecer o nome da rua, porém salvar apenas o id de fato. Vamos adicionar isso também em “fieldsAbled”, como ele não serve para selecionar, apenas para mostrar, podemos deixar como value

    <DropDownComponent
    	placeholder="Seus endereços"
      setSelected={setSelect}
      data={Data}
      saveMethod="value"
    />
    
  4. E ao fazer isso, podemos agora cadastrar algum produto, e nós iremos ter no mongo a visualização do endereço que temos cadastrado quando enviamos também o produto

  5. E vamos poder também agora, chamar o endereço na tela individual de produto, basta irmos lá e chamar ele onde temos o comentário

    const Product = ({ route }: Props) => {
      const navigation = useNavigation<PropsStack>();
      const { token } = useAuth();
    
      return (
        <Container>
          <BackArrow marginLeft={30} />
          <Title>{route.params.name}</Title>
          <SubTitleContainer>
            <SubTitle>Publicado em {getDate(route.params.createdAt)}</SubTitle>
            <SubTitle>
              {route.params.address.city}, {route.params.address.state}
            </SubTitle>
          </SubTitleContainer>
    
  6. Podemos ver então, que nesse onde a gente salvou está com o endereço correto, então podemos recriar alguns dos produtos para terem endereços certinho