2 Câu hỏi: Xác thực trường ngày trong rung với dữ liệu Boolean

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố xác thực trường ngày trong Flutter nhưng, tôi vẫn gặp lỗi này:

Khẳng định sau được đưa ra trong khi xử lý cử chỉ: I /flutter (6785): Khẳng định không thành công: biểu thức boolean không được rỗng

  Row(
                                        mainAxisAlignment:
                                            MainAxisAlignment.spaceEvenly,
                                        children: <Widget>[
                                          RaisedButton(
                                            highlightElevation: 8,
                                            color: Colors.white,
                                            shape: RoundedRectangleBorder(
                                              borderRadius:
                                                  BorderRadius.circular(8.0),
                                            ),
                                            child: Text(
                                              selectedYear != null
                                                  ? selectedYear.toString()
                                                  : "Age Checker",
                                              style: TextStyle(
                                                  color: Colors.orange),
                                            ),
                                            onPressed: _showPicker,
                                            
                                          ),
                                          Container(
                                            width: 120,
                                            child: AnimatedBuilder(
                                              animation: animation,
                                              builder: (context, child) => FormField(
                                                builder:
                                                    (FormFieldState state) {
                                                  return InputDecorator(
                                                decoration: InputDecoration(
                                                  labelText:  'You Are '
                                                        "${animation.value.toStringAsFixed(0)}",
                                                  errorText:  state.hasError
                                                          ? state.errorText
                                                          : null,
                                                ),
                                                isEmpty: selectedYear == '',
                                                  );
                                                     },  validator: (selectedYear) => selectedYear ? null: 'rawr',
                                                 
                                              ),
                                              
                                            ),
                                          ),
                                        ],
                                      ),

Dưới đây là các phương pháp của tôi để giúp tính tuổi và trình xác nhận để xác thực tuổi.

 void calculateAge() {
setState(() {
  age = (2018 - selectedYear).toDouble();

  animation = Tween<double>(begin: animation.value, end: age).animate(
      CurvedAnimation(
          curve: Curves.fastOutSlowIn, parent: animationController));

  animationController.forward(from: 0.0);
});
print(age);

if (age < 21){
  ageChecker();
} else{
}

}

bool isValidDob (Chuỗi dob) {   if (dob.isEmpty) trả về true;

}

Tôi muốn xác nhận người dùng trên 21 tuổi trước khi chuyển sang màn hình tiếp theo. Xin vui lòng cho tôi biết tôi đã sai ở đâu.

    
0
2 Câu trả lời                              2                         

Nơi bạn đang gọi chức năng này?

bool isValidDob(String dob) { 
 if (dob.isEmpty) return true;
}

Tôi nghĩ rằng chức năng này gây ra lỗi, hãy thử thay đổi nó thành

sau
 bool isValidDob(String dob) { 
     if (dob.isEmpty){
      return true;
      }
     else{
       return false
       }
    }
    
1
2019-05-08 17: 41: 40Z
  1. Chào mừng bạn đến với SO. Điều này trông giống như một nhận xét, nếu mức độ danh tiếng của bạn không cho phép bạn nhận xét, hãy đảm bảo ít nhất cung cấp Tối thiểu, Hoàn thành và Xác minh ví dụ .
    2019-05-08 17: 26: 33Z

Dựa trên các đoạn mã chưa hoàn chỉnh này, tôi nghĩ rằng dòng có vấn đề là

validator: (selectedYear) => selectedYear ? null: 'rawr' bởi vì loại selectedYear không được chỉ định và không thể được suy ra. Nếu bạn thay đổi nó như

validator: (int selectedYear) => selectedYear ? null: 'rawr' sau đó bộ phân tích sẽ đưa ra lỗi khi sử dụng loại không phải là bool trong một điều kiện. Ngoài ra, bạn có thể bật tùy chọn máy phân tích unrelated_type_equality_checks sẽ cảnh báo bạn về selectedYear == '' vì bạn so sánh một chuỗi và động.

Việc khắc phục rất dễ dàng, validator: (int selectedYear) => selectedYear >= 21 ? null: 'rawr'

Bạn cũng có thể gặp lỗi tương tự đối với booleans vì trong phi tiêu, bất kỳ biến nào cũng có thể là null.

    
0
2019-05-08 17: 05: 53Z
nguồn đặt đây